/*
 *
 *    Copyright (c) 2021 Project CHIP Authors
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */

// THIS FILE IS GENERATED BY ZAP

#import "CHIPCallbackBridgeBase_internal.h"
#import <Foundation/Foundation.h>

#include <app-common/zap-generated/cluster-objects.h>
#include <app/data-model/DecodableList.h>

typedef void (*CommandSuccessCallback)(void *, const chip::app::DataModel::NullObjectType &);
using CHIPCommandSuccessCallbackType = CommandSuccessCallback;
typedef void (*CHIPDefaultSuccessCallbackType)(void *);
typedef void (*CHIPDefaultFailureCallbackType)(void *, EmberAfStatus);

typedef void (*VendorIdAttributeCallback)(void *, chip::VendorId);
typedef void (*NullableVendorIdAttributeCallback)(void *, const chip::app::DataModel::Nullable<chip::VendorId> &);

typedef void (*CHIPAccountLoginClusterGetSetupPINResponseCallbackType)(
    void *, const chip::app::Clusters::AccountLogin::Commands::GetSetupPINResponse::DecodableType &);
typedef void (*CHIPApplicationLauncherClusterLauncherResponseCallbackType)(
    void *, const chip::app::Clusters::ApplicationLauncher::Commands::LauncherResponse::DecodableType &);
typedef void (*CHIPChannelClusterChangeChannelResponseCallbackType)(
    void *, const chip::app::Clusters::Channel::Commands::ChangeChannelResponse::DecodableType &);
typedef void (*CHIPContentLauncherClusterLaunchResponseCallbackType)(
    void *, const chip::app::Clusters::ContentLauncher::Commands::LaunchResponse::DecodableType &);
typedef void (*CHIPDiagnosticLogsClusterRetrieveLogsResponseCallbackType)(
    void *, const chip::app::Clusters::DiagnosticLogs::Commands::RetrieveLogsResponse::DecodableType &);
typedef void (*CHIPDoorLockClusterGetCredentialStatusResponseCallbackType)(
    void *, const chip::app::Clusters::DoorLock::Commands::GetCredentialStatusResponse::DecodableType &);
typedef void (*CHIPDoorLockClusterGetUserResponseCallbackType)(
    void *, const chip::app::Clusters::DoorLock::Commands::GetUserResponse::DecodableType &);
typedef void (*CHIPDoorLockClusterSetCredentialResponseCallbackType)(
    void *, const chip::app::Clusters::DoorLock::Commands::SetCredentialResponse::DecodableType &);
typedef void (*CHIPGeneralCommissioningClusterArmFailSafeResponseCallbackType)(
    void *, const chip::app::Clusters::GeneralCommissioning::Commands::ArmFailSafeResponse::DecodableType &);
typedef void (*CHIPGeneralCommissioningClusterCommissioningCompleteResponseCallbackType)(
    void *, const chip::app::Clusters::GeneralCommissioning::Commands::CommissioningCompleteResponse::DecodableType &);
typedef void (*CHIPGeneralCommissioningClusterSetRegulatoryConfigResponseCallbackType)(
    void *, const chip::app::Clusters::GeneralCommissioning::Commands::SetRegulatoryConfigResponse::DecodableType &);
typedef void (*CHIPGroupKeyManagementClusterKeySetReadAllIndicesResponseCallbackType)(
    void *, const chip::app::Clusters::GroupKeyManagement::Commands::KeySetReadAllIndicesResponse::DecodableType &);
typedef void (*CHIPGroupKeyManagementClusterKeySetReadResponseCallbackType)(
    void *, const chip::app::Clusters::GroupKeyManagement::Commands::KeySetReadResponse::DecodableType &);
typedef void (*CHIPGroupsClusterAddGroupResponseCallbackType)(
    void *, const chip::app::Clusters::Groups::Commands::AddGroupResponse::DecodableType &);
typedef void (*CHIPGroupsClusterGetGroupMembershipResponseCallbackType)(
    void *, const chip::app::Clusters::Groups::Commands::GetGroupMembershipResponse::DecodableType &);
typedef void (*CHIPGroupsClusterRemoveGroupResponseCallbackType)(
    void *, const chip::app::Clusters::Groups::Commands::RemoveGroupResponse::DecodableType &);
typedef void (*CHIPGroupsClusterViewGroupResponseCallbackType)(
    void *, const chip::app::Clusters::Groups::Commands::ViewGroupResponse::DecodableType &);
typedef void (*CHIPIdentifyClusterIdentifyQueryResponseCallbackType)(
    void *, const chip::app::Clusters::Identify::Commands::IdentifyQueryResponse::DecodableType &);
typedef void (*CHIPKeypadInputClusterSendKeyResponseCallbackType)(
    void *, const chip::app::Clusters::KeypadInput::Commands::SendKeyResponse::DecodableType &);
typedef void (*CHIPMediaPlaybackClusterPlaybackResponseCallbackType)(
    void *, const chip::app::Clusters::MediaPlayback::Commands::PlaybackResponse::DecodableType &);
typedef void (*CHIPNetworkCommissioningClusterConnectNetworkResponseCallbackType)(
    void *, const chip::app::Clusters::NetworkCommissioning::Commands::ConnectNetworkResponse::DecodableType &);
typedef void (*CHIPNetworkCommissioningClusterNetworkConfigResponseCallbackType)(
    void *, const chip::app::Clusters::NetworkCommissioning::Commands::NetworkConfigResponse::DecodableType &);
typedef void (*CHIPNetworkCommissioningClusterScanNetworksResponseCallbackType)(
    void *, const chip::app::Clusters::NetworkCommissioning::Commands::ScanNetworksResponse::DecodableType &);
typedef void (*CHIPOtaSoftwareUpdateProviderClusterApplyUpdateResponseCallbackType)(
    void *, const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::ApplyUpdateResponse::DecodableType &);
typedef void (*CHIPOtaSoftwareUpdateProviderClusterQueryImageResponseCallbackType)(
    void *, const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::QueryImageResponse::DecodableType &);
typedef void (*CHIPOperationalCredentialsClusterAttestationResponseCallbackType)(
    void *, const chip::app::Clusters::OperationalCredentials::Commands::AttestationResponse::DecodableType &);
typedef void (*CHIPOperationalCredentialsClusterCertificateChainResponseCallbackType)(
    void *, const chip::app::Clusters::OperationalCredentials::Commands::CertificateChainResponse::DecodableType &);
typedef void (*CHIPOperationalCredentialsClusterNOCResponseCallbackType)(
    void *, const chip::app::Clusters::OperationalCredentials::Commands::NOCResponse::DecodableType &);
typedef void (*CHIPOperationalCredentialsClusterOpCSRResponseCallbackType)(
    void *, const chip::app::Clusters::OperationalCredentials::Commands::OpCSRResponse::DecodableType &);
typedef void (*CHIPScenesClusterAddSceneResponseCallbackType)(
    void *, const chip::app::Clusters::Scenes::Commands::AddSceneResponse::DecodableType &);
typedef void (*CHIPScenesClusterGetSceneMembershipResponseCallbackType)(
    void *, const chip::app::Clusters::Scenes::Commands::GetSceneMembershipResponse::DecodableType &);
typedef void (*CHIPScenesClusterRemoveAllScenesResponseCallbackType)(
    void *, const chip::app::Clusters::Scenes::Commands::RemoveAllScenesResponse::DecodableType &);
typedef void (*CHIPScenesClusterRemoveSceneResponseCallbackType)(
    void *, const chip::app::Clusters::Scenes::Commands::RemoveSceneResponse::DecodableType &);
typedef void (*CHIPScenesClusterStoreSceneResponseCallbackType)(
    void *, const chip::app::Clusters::Scenes::Commands::StoreSceneResponse::DecodableType &);
typedef void (*CHIPScenesClusterViewSceneResponseCallbackType)(
    void *, const chip::app::Clusters::Scenes::Commands::ViewSceneResponse::DecodableType &);
typedef void (*CHIPTargetNavigatorClusterNavigateTargetResponseCallbackType)(
    void *, const chip::app::Clusters::TargetNavigator::Commands::NavigateTargetResponse::DecodableType &);
typedef void (*CHIPTestClusterClusterBooleanResponseCallbackType)(
    void *, const chip::app::Clusters::TestCluster::Commands::BooleanResponse::DecodableType &);
typedef void (*CHIPTestClusterClusterSimpleStructResponseCallbackType)(
    void *, const chip::app::Clusters::TestCluster::Commands::SimpleStructResponse::DecodableType &);
typedef void (*CHIPTestClusterClusterTestAddArgumentsResponseCallbackType)(
    void *, const chip::app::Clusters::TestCluster::Commands::TestAddArgumentsResponse::DecodableType &);
typedef void (*CHIPTestClusterClusterTestEnumsResponseCallbackType)(
    void *, const chip::app::Clusters::TestCluster::Commands::TestEnumsResponse::DecodableType &);
typedef void (*CHIPTestClusterClusterTestListInt8UReverseResponseCallbackType)(
    void *, const chip::app::Clusters::TestCluster::Commands::TestListInt8UReverseResponse::DecodableType &);
typedef void (*CHIPTestClusterClusterTestNullableOptionalResponseCallbackType)(
    void *, const chip::app::Clusters::TestCluster::Commands::TestNullableOptionalResponse::DecodableType &);
typedef void (*CHIPTestClusterClusterTestSpecificResponseCallbackType)(
    void *, const chip::app::Clusters::TestCluster::Commands::TestSpecificResponse::DecodableType &);
typedef void (*CHIPThermostatClusterGetRelayStatusLogResponseCallbackType)(
    void *, const chip::app::Clusters::Thermostat::Commands::GetRelayStatusLogResponse::DecodableType &);
typedef void (*CHIPThermostatClusterGetWeeklyScheduleResponseCallbackType)(
    void *, const chip::app::Clusters::Thermostat::Commands::GetWeeklyScheduleResponse::DecodableType &);

typedef void (*IdentifyClusterIdentifyEffectIdentifierAttributeCallback)(void *,
                                                                         chip::app::Clusters::Identify::IdentifyEffectIdentifier);
typedef void (*NullableIdentifyClusterIdentifyEffectIdentifierAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::Identify::IdentifyEffectIdentifier> &);
typedef void (*IdentifyClusterIdentifyEffectVariantAttributeCallback)(void *, chip::app::Clusters::Identify::IdentifyEffectVariant);
typedef void (*NullableIdentifyClusterIdentifyEffectVariantAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::Identify::IdentifyEffectVariant> &);
typedef void (*IdentifyClusterIdentifyIdentifyTypeAttributeCallback)(void *, chip::app::Clusters::Identify::IdentifyIdentifyType);
typedef void (*NullableIdentifyClusterIdentifyIdentifyTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::Identify::IdentifyIdentifyType> &);
typedef void (*OnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallback)(
    void *, chip::app::Clusters::OnOff::OnOffDelayedAllOffEffectVariant);
typedef void (*NullableOnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::OnOff::OnOffDelayedAllOffEffectVariant> &);
typedef void (*OnOffClusterOnOffDyingLightEffectVariantAttributeCallback)(void *,
                                                                          chip::app::Clusters::OnOff::OnOffDyingLightEffectVariant);
typedef void (*NullableOnOffClusterOnOffDyingLightEffectVariantAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::OnOff::OnOffDyingLightEffectVariant> &);
typedef void (*OnOffClusterOnOffEffectIdentifierAttributeCallback)(void *, chip::app::Clusters::OnOff::OnOffEffectIdentifier);
typedef void (*NullableOnOffClusterOnOffEffectIdentifierAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::OnOff::OnOffEffectIdentifier> &);
typedef void (*LevelControlClusterMoveModeAttributeCallback)(void *, chip::app::Clusters::LevelControl::MoveMode);
typedef void (*NullableLevelControlClusterMoveModeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::LevelControl::MoveMode> &);
typedef void (*LevelControlClusterStepModeAttributeCallback)(void *, chip::app::Clusters::LevelControl::StepMode);
typedef void (*NullableLevelControlClusterStepModeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::LevelControl::StepMode> &);
typedef void (*ApplianceControlClusterApplianceStatusAttributeCallback)(void *,
                                                                        chip::app::Clusters::ApplianceControl::ApplianceStatus);
typedef void (*NullableApplianceControlClusterApplianceStatusAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ApplianceControl::ApplianceStatus> &);
typedef void (*ApplianceControlClusterCommandIdentificationAttributeCallback)(
    void *, chip::app::Clusters::ApplianceControl::CommandIdentification);
typedef void (*NullableApplianceControlClusterCommandIdentificationAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ApplianceControl::CommandIdentification> &);
typedef void (*ApplianceControlClusterWarningEventAttributeCallback)(void *, chip::app::Clusters::ApplianceControl::WarningEvent);
typedef void (*NullableApplianceControlClusterWarningEventAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ApplianceControl::WarningEvent> &);
typedef void (*AccessControlClusterAuthModeAttributeCallback)(void *, chip::app::Clusters::AccessControl::AuthMode);
typedef void (*NullableAccessControlClusterAuthModeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::AccessControl::AuthMode> &);
typedef void (*AccessControlClusterPrivilegeAttributeCallback)(void *, chip::app::Clusters::AccessControl::Privilege);
typedef void (*NullableAccessControlClusterPrivilegeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::AccessControl::Privilege> &);
typedef void (*BridgedActionsClusterActionErrorEnumAttributeCallback)(void *, chip::app::Clusters::BridgedActions::ActionErrorEnum);
typedef void (*NullableBridgedActionsClusterActionErrorEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::BridgedActions::ActionErrorEnum> &);
typedef void (*BridgedActionsClusterActionStateEnumAttributeCallback)(void *, chip::app::Clusters::BridgedActions::ActionStateEnum);
typedef void (*NullableBridgedActionsClusterActionStateEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::BridgedActions::ActionStateEnum> &);
typedef void (*BridgedActionsClusterActionTypeEnumAttributeCallback)(void *, chip::app::Clusters::BridgedActions::ActionTypeEnum);
typedef void (*NullableBridgedActionsClusterActionTypeEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::BridgedActions::ActionTypeEnum> &);
typedef void (*BridgedActionsClusterEndpointListTypeEnumAttributeCallback)(
    void *, chip::app::Clusters::BridgedActions::EndpointListTypeEnum);
typedef void (*NullableBridgedActionsClusterEndpointListTypeEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::BridgedActions::EndpointListTypeEnum> &);
typedef void (*OtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallback)(
    void *, chip::app::Clusters::OtaSoftwareUpdateProvider::OTAApplyUpdateAction);
typedef void (*NullableOtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::OtaSoftwareUpdateProvider::OTAApplyUpdateAction> &);
typedef void (*OtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallback)(
    void *, chip::app::Clusters::OtaSoftwareUpdateProvider::OTADownloadProtocol);
typedef void (*NullableOtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::OtaSoftwareUpdateProvider::OTADownloadProtocol> &);
typedef void (*OtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallback)(
    void *, chip::app::Clusters::OtaSoftwareUpdateProvider::OTAQueryStatus);
typedef void (*NullableOtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::OtaSoftwareUpdateProvider::OTAQueryStatus> &);
typedef void (*OtaSoftwareUpdateRequestorClusterChangeReasonEnumAttributeCallback)(
    void *, chip::app::Clusters::OtaSoftwareUpdateRequestor::ChangeReasonEnum);
typedef void (*NullableOtaSoftwareUpdateRequestorClusterChangeReasonEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::OtaSoftwareUpdateRequestor::ChangeReasonEnum> &);
typedef void (*OtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallback)(
    void *, chip::app::Clusters::OtaSoftwareUpdateRequestor::OTAAnnouncementReason);
typedef void (*NullableOtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::OtaSoftwareUpdateRequestor::OTAAnnouncementReason> &);
typedef void (*OtaSoftwareUpdateRequestorClusterUpdateStateEnumAttributeCallback)(
    void *, chip::app::Clusters::OtaSoftwareUpdateRequestor::UpdateStateEnum);
typedef void (*NullableOtaSoftwareUpdateRequestorClusterUpdateStateEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::OtaSoftwareUpdateRequestor::UpdateStateEnum> &);
typedef void (*GeneralCommissioningClusterGeneralCommissioningErrorAttributeCallback)(
    void *, chip::app::Clusters::GeneralCommissioning::GeneralCommissioningError);
typedef void (*NullableGeneralCommissioningClusterGeneralCommissioningErrorAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::GeneralCommissioning::GeneralCommissioningError> &);
typedef void (*GeneralCommissioningClusterRegulatoryLocationTypeAttributeCallback)(
    void *, chip::app::Clusters::GeneralCommissioning::RegulatoryLocationType);
typedef void (*NullableGeneralCommissioningClusterRegulatoryLocationTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::GeneralCommissioning::RegulatoryLocationType> &);
typedef void (*NetworkCommissioningClusterNetworkCommissioningStatusAttributeCallback)(
    void *, chip::app::Clusters::NetworkCommissioning::NetworkCommissioningStatus);
typedef void (*NullableNetworkCommissioningClusterNetworkCommissioningStatusAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::NetworkCommissioning::NetworkCommissioningStatus> &);
typedef void (*NetworkCommissioningClusterWiFiBandAttributeCallback)(void *, chip::app::Clusters::NetworkCommissioning::WiFiBand);
typedef void (*NullableNetworkCommissioningClusterWiFiBandAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::NetworkCommissioning::WiFiBand> &);
typedef void (*DiagnosticLogsClusterLogsIntentAttributeCallback)(void *, chip::app::Clusters::DiagnosticLogs::LogsIntent);
typedef void (*NullableDiagnosticLogsClusterLogsIntentAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DiagnosticLogs::LogsIntent> &);
typedef void (*DiagnosticLogsClusterLogsStatusAttributeCallback)(void *, chip::app::Clusters::DiagnosticLogs::LogsStatus);
typedef void (*NullableDiagnosticLogsClusterLogsStatusAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DiagnosticLogs::LogsStatus> &);
typedef void (*DiagnosticLogsClusterLogsTransferProtocolAttributeCallback)(
    void *, chip::app::Clusters::DiagnosticLogs::LogsTransferProtocol);
typedef void (*NullableDiagnosticLogsClusterLogsTransferProtocolAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DiagnosticLogs::LogsTransferProtocol> &);
typedef void (*GeneralDiagnosticsClusterBootReasonTypeAttributeCallback)(void *,
                                                                         chip::app::Clusters::GeneralDiagnostics::BootReasonType);
typedef void (*NullableGeneralDiagnosticsClusterBootReasonTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::GeneralDiagnostics::BootReasonType> &);
typedef void (*GeneralDiagnosticsClusterHardwareFaultTypeAttributeCallback)(
    void *, chip::app::Clusters::GeneralDiagnostics::HardwareFaultType);
typedef void (*NullableGeneralDiagnosticsClusterHardwareFaultTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::GeneralDiagnostics::HardwareFaultType> &);
typedef void (*GeneralDiagnosticsClusterInterfaceTypeAttributeCallback)(void *,
                                                                        chip::app::Clusters::GeneralDiagnostics::InterfaceType);
typedef void (*NullableGeneralDiagnosticsClusterInterfaceTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::GeneralDiagnostics::InterfaceType> &);
typedef void (*GeneralDiagnosticsClusterNetworkFaultTypeAttributeCallback)(
    void *, chip::app::Clusters::GeneralDiagnostics::NetworkFaultType);
typedef void (*NullableGeneralDiagnosticsClusterNetworkFaultTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::GeneralDiagnostics::NetworkFaultType> &);
typedef void (*GeneralDiagnosticsClusterRadioFaultTypeAttributeCallback)(void *,
                                                                         chip::app::Clusters::GeneralDiagnostics::RadioFaultType);
typedef void (*NullableGeneralDiagnosticsClusterRadioFaultTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::GeneralDiagnostics::RadioFaultType> &);
typedef void (*ThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallback)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::NetworkFault);
typedef void (*NullableThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ThreadNetworkDiagnostics::NetworkFault> &);
typedef void (*ThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallback)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::RoutingRole);
typedef void (*NullableThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ThreadNetworkDiagnostics::RoutingRole> &);
typedef void (*ThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallback)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::ThreadConnectionStatus);
typedef void (*NullableThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ThreadNetworkDiagnostics::ThreadConnectionStatus> &);
typedef void (*WiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallback)(
    void *, chip::app::Clusters::WiFiNetworkDiagnostics::AssociationFailureCause);
typedef void (*NullableWiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::WiFiNetworkDiagnostics::AssociationFailureCause> &);
typedef void (*WiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallback)(
    void *, chip::app::Clusters::WiFiNetworkDiagnostics::SecurityType);
typedef void (*NullableWiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::WiFiNetworkDiagnostics::SecurityType> &);
typedef void (*WiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallback)(
    void *, chip::app::Clusters::WiFiNetworkDiagnostics::WiFiConnectionStatus);
typedef void (*NullableWiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::WiFiNetworkDiagnostics::WiFiConnectionStatus> &);
typedef void (*WiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallback)(
    void *, chip::app::Clusters::WiFiNetworkDiagnostics::WiFiVersionType);
typedef void (*NullableWiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::WiFiNetworkDiagnostics::WiFiVersionType> &);
typedef void (*EthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallback)(
    void *, chip::app::Clusters::EthernetNetworkDiagnostics::PHYRateType);
typedef void (*NullableEthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::EthernetNetworkDiagnostics::PHYRateType> &);
typedef void (*AdministratorCommissioningClusterCommissioningWindowStatusAttributeCallback)(
    void *, chip::app::Clusters::AdministratorCommissioning::CommissioningWindowStatus);
typedef void (*NullableAdministratorCommissioningClusterCommissioningWindowStatusAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::AdministratorCommissioning::CommissioningWindowStatus> &);
typedef void (*AdministratorCommissioningClusterStatusCodeAttributeCallback)(
    void *, chip::app::Clusters::AdministratorCommissioning::StatusCode);
typedef void (*NullableAdministratorCommissioningClusterStatusCodeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::AdministratorCommissioning::StatusCode> &);
typedef void (*OperationalCredentialsClusterNodeOperationalCertStatusAttributeCallback)(
    void *, chip::app::Clusters::OperationalCredentials::NodeOperationalCertStatus);
typedef void (*NullableOperationalCredentialsClusterNodeOperationalCertStatusAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::OperationalCredentials::NodeOperationalCertStatus> &);
typedef void (*GroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallback)(
    void *, chip::app::Clusters::GroupKeyManagement::GroupKeySecurityPolicy);
typedef void (*NullableGroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::GroupKeyManagement::GroupKeySecurityPolicy> &);
typedef void (*DoorLockClusterDlAlarmCodeAttributeCallback)(void *, chip::app::Clusters::DoorLock::DlAlarmCode);
typedef void (*NullableDoorLockClusterDlAlarmCodeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlAlarmCode> &);
typedef void (*DoorLockClusterDlCredentialRuleAttributeCallback)(void *, chip::app::Clusters::DoorLock::DlCredentialRule);
typedef void (*NullableDoorLockClusterDlCredentialRuleAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlCredentialRule> &);
typedef void (*DoorLockClusterDlCredentialTypeAttributeCallback)(void *, chip::app::Clusters::DoorLock::DlCredentialType);
typedef void (*NullableDoorLockClusterDlCredentialTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlCredentialType> &);
typedef void (*DoorLockClusterDlDataOperationTypeAttributeCallback)(void *, chip::app::Clusters::DoorLock::DlDataOperationType);
typedef void (*NullableDoorLockClusterDlDataOperationTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlDataOperationType> &);
typedef void (*DoorLockClusterDlDoorLockStatusAttributeCallback)(void *, chip::app::Clusters::DoorLock::DlDoorLockStatus);
typedef void (*NullableDoorLockClusterDlDoorLockStatusAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlDoorLockStatus> &);
typedef void (*DoorLockClusterDlDoorStateAttributeCallback)(void *, chip::app::Clusters::DoorLock::DlDoorState);
typedef void (*NullableDoorLockClusterDlDoorStateAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlDoorState> &);
typedef void (*DoorLockClusterDlLockDataTypeAttributeCallback)(void *, chip::app::Clusters::DoorLock::DlLockDataType);
typedef void (*NullableDoorLockClusterDlLockDataTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlLockDataType> &);
typedef void (*DoorLockClusterDlLockOperationTypeAttributeCallback)(void *, chip::app::Clusters::DoorLock::DlLockOperationType);
typedef void (*NullableDoorLockClusterDlLockOperationTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlLockOperationType> &);
typedef void (*DoorLockClusterDlLockStateAttributeCallback)(void *, chip::app::Clusters::DoorLock::DlLockState);
typedef void (*NullableDoorLockClusterDlLockStateAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlLockState> &);
typedef void (*DoorLockClusterDlLockTypeAttributeCallback)(void *, chip::app::Clusters::DoorLock::DlLockType);
typedef void (*NullableDoorLockClusterDlLockTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlLockType> &);
typedef void (*DoorLockClusterDlOperatingModeAttributeCallback)(void *, chip::app::Clusters::DoorLock::DlOperatingMode);
typedef void (*NullableDoorLockClusterDlOperatingModeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlOperatingMode> &);
typedef void (*DoorLockClusterDlOperationErrorAttributeCallback)(void *, chip::app::Clusters::DoorLock::DlOperationError);
typedef void (*NullableDoorLockClusterDlOperationErrorAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlOperationError> &);
typedef void (*DoorLockClusterDlOperationSourceAttributeCallback)(void *, chip::app::Clusters::DoorLock::DlOperationSource);
typedef void (*NullableDoorLockClusterDlOperationSourceAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlOperationSource> &);
typedef void (*DoorLockClusterDlStatusAttributeCallback)(void *, chip::app::Clusters::DoorLock::DlStatus);
typedef void (*NullableDoorLockClusterDlStatusAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlStatus> &);
typedef void (*DoorLockClusterDlUserStatusAttributeCallback)(void *, chip::app::Clusters::DoorLock::DlUserStatus);
typedef void (*NullableDoorLockClusterDlUserStatusAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlUserStatus> &);
typedef void (*DoorLockClusterDlUserTypeAttributeCallback)(void *, chip::app::Clusters::DoorLock::DlUserType);
typedef void (*NullableDoorLockClusterDlUserTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlUserType> &);
typedef void (*DoorLockClusterDoorLockOperationEventCodeAttributeCallback)(
    void *, chip::app::Clusters::DoorLock::DoorLockOperationEventCode);
typedef void (*NullableDoorLockClusterDoorLockOperationEventCodeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DoorLockOperationEventCode> &);
typedef void (*DoorLockClusterDoorLockProgrammingEventCodeAttributeCallback)(
    void *, chip::app::Clusters::DoorLock::DoorLockProgrammingEventCode);
typedef void (*NullableDoorLockClusterDoorLockProgrammingEventCodeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DoorLockProgrammingEventCode> &);
typedef void (*DoorLockClusterDoorLockSetPinOrIdStatusAttributeCallback)(void *,
                                                                         chip::app::Clusters::DoorLock::DoorLockSetPinOrIdStatus);
typedef void (*NullableDoorLockClusterDoorLockSetPinOrIdStatusAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DoorLockSetPinOrIdStatus> &);
typedef void (*DoorLockClusterDoorLockUserStatusAttributeCallback)(void *, chip::app::Clusters::DoorLock::DoorLockUserStatus);
typedef void (*NullableDoorLockClusterDoorLockUserStatusAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DoorLockUserStatus> &);
typedef void (*DoorLockClusterDoorLockUserTypeAttributeCallback)(void *, chip::app::Clusters::DoorLock::DoorLockUserType);
typedef void (*NullableDoorLockClusterDoorLockUserTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DoorLockUserType> &);
typedef void (*PumpConfigurationAndControlClusterPumpControlModeAttributeCallback)(
    void *, chip::app::Clusters::PumpConfigurationAndControl::PumpControlMode);
typedef void (*NullablePumpConfigurationAndControlClusterPumpControlModeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::PumpConfigurationAndControl::PumpControlMode> &);
typedef void (*PumpConfigurationAndControlClusterPumpOperationModeAttributeCallback)(
    void *, chip::app::Clusters::PumpConfigurationAndControl::PumpOperationMode);
typedef void (*NullablePumpConfigurationAndControlClusterPumpOperationModeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::PumpConfigurationAndControl::PumpOperationMode> &);
typedef void (*ThermostatClusterSetpointAdjustModeAttributeCallback)(void *, chip::app::Clusters::Thermostat::SetpointAdjustMode);
typedef void (*NullableThermostatClusterSetpointAdjustModeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::Thermostat::SetpointAdjustMode> &);
typedef void (*ColorControlClusterColorLoopActionAttributeCallback)(void *, chip::app::Clusters::ColorControl::ColorLoopAction);
typedef void (*NullableColorControlClusterColorLoopActionAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ColorControl::ColorLoopAction> &);
typedef void (*ColorControlClusterColorLoopDirectionAttributeCallback)(void *,
                                                                       chip::app::Clusters::ColorControl::ColorLoopDirection);
typedef void (*NullableColorControlClusterColorLoopDirectionAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ColorControl::ColorLoopDirection> &);
typedef void (*ColorControlClusterColorModeAttributeCallback)(void *, chip::app::Clusters::ColorControl::ColorMode);
typedef void (*NullableColorControlClusterColorModeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ColorControl::ColorMode> &);
typedef void (*ColorControlClusterHueDirectionAttributeCallback)(void *, chip::app::Clusters::ColorControl::HueDirection);
typedef void (*NullableColorControlClusterHueDirectionAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ColorControl::HueDirection> &);
typedef void (*ColorControlClusterHueMoveModeAttributeCallback)(void *, chip::app::Clusters::ColorControl::HueMoveMode);
typedef void (*NullableColorControlClusterHueMoveModeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ColorControl::HueMoveMode> &);
typedef void (*ColorControlClusterHueStepModeAttributeCallback)(void *, chip::app::Clusters::ColorControl::HueStepMode);
typedef void (*NullableColorControlClusterHueStepModeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ColorControl::HueStepMode> &);
typedef void (*ColorControlClusterSaturationMoveModeAttributeCallback)(void *,
                                                                       chip::app::Clusters::ColorControl::SaturationMoveMode);
typedef void (*NullableColorControlClusterSaturationMoveModeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ColorControl::SaturationMoveMode> &);
typedef void (*ColorControlClusterSaturationStepModeAttributeCallback)(void *,
                                                                       chip::app::Clusters::ColorControl::SaturationStepMode);
typedef void (*NullableColorControlClusterSaturationStepModeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ColorControl::SaturationStepMode> &);
typedef void (*IlluminanceMeasurementClusterLightSensorTypeAttributeCallback)(
    void *, chip::app::Clusters::IlluminanceMeasurement::LightSensorType);
typedef void (*NullableIlluminanceMeasurementClusterLightSensorTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::IlluminanceMeasurement::LightSensorType> &);
typedef void (*IasZoneClusterIasEnrollResponseCodeAttributeCallback)(void *, chip::app::Clusters::IasZone::IasEnrollResponseCode);
typedef void (*NullableIasZoneClusterIasEnrollResponseCodeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::IasZone::IasEnrollResponseCode> &);
typedef void (*IasZoneClusterIasZoneTypeAttributeCallback)(void *, chip::app::Clusters::IasZone::IasZoneType);
typedef void (*NullableIasZoneClusterIasZoneTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::IasZone::IasZoneType> &);
typedef void (*IasAceClusterIasAceAlarmStatusAttributeCallback)(void *, chip::app::Clusters::IasAce::IasAceAlarmStatus);
typedef void (*NullableIasAceClusterIasAceAlarmStatusAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::IasAce::IasAceAlarmStatus> &);
typedef void (*IasAceClusterIasAceArmModeAttributeCallback)(void *, chip::app::Clusters::IasAce::IasAceArmMode);
typedef void (*NullableIasAceClusterIasAceArmModeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::IasAce::IasAceArmMode> &);
typedef void (*IasAceClusterIasAceArmNotificationAttributeCallback)(void *, chip::app::Clusters::IasAce::IasAceArmNotification);
typedef void (*NullableIasAceClusterIasAceArmNotificationAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::IasAce::IasAceArmNotification> &);
typedef void (*IasAceClusterIasAceAudibleNotificationAttributeCallback)(void *,
                                                                        chip::app::Clusters::IasAce::IasAceAudibleNotification);
typedef void (*NullableIasAceClusterIasAceAudibleNotificationAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::IasAce::IasAceAudibleNotification> &);
typedef void (*IasAceClusterIasAceBypassResultAttributeCallback)(void *, chip::app::Clusters::IasAce::IasAceBypassResult);
typedef void (*NullableIasAceClusterIasAceBypassResultAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::IasAce::IasAceBypassResult> &);
typedef void (*IasAceClusterIasAcePanelStatusAttributeCallback)(void *, chip::app::Clusters::IasAce::IasAcePanelStatus);
typedef void (*NullableIasAceClusterIasAcePanelStatusAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::IasAce::IasAcePanelStatus> &);
typedef void (*IasAceClusterIasZoneTypeAttributeCallback)(void *, chip::app::Clusters::IasAce::IasZoneType);
typedef void (*NullableIasAceClusterIasZoneTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::IasAce::IasZoneType> &);
typedef void (*ChannelClusterErrorTypeEnumAttributeCallback)(void *, chip::app::Clusters::Channel::ErrorTypeEnum);
typedef void (*NullableChannelClusterErrorTypeEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::Channel::ErrorTypeEnum> &);
typedef void (*ChannelClusterLineupInfoTypeEnumAttributeCallback)(void *, chip::app::Clusters::Channel::LineupInfoTypeEnum);
typedef void (*NullableChannelClusterLineupInfoTypeEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::Channel::LineupInfoTypeEnum> &);
typedef void (*TargetNavigatorClusterStatusEnumAttributeCallback)(void *, chip::app::Clusters::TargetNavigator::StatusEnum);
typedef void (*NullableTargetNavigatorClusterStatusEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::TargetNavigator::StatusEnum> &);
typedef void (*MediaPlaybackClusterPlaybackStateEnumAttributeCallback)(void *,
                                                                       chip::app::Clusters::MediaPlayback::PlaybackStateEnum);
typedef void (*NullableMediaPlaybackClusterPlaybackStateEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::MediaPlayback::PlaybackStateEnum> &);
typedef void (*MediaPlaybackClusterStatusEnumAttributeCallback)(void *, chip::app::Clusters::MediaPlayback::StatusEnum);
typedef void (*NullableMediaPlaybackClusterStatusEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::MediaPlayback::StatusEnum> &);
typedef void (*MediaInputClusterInputTypeEnumAttributeCallback)(void *, chip::app::Clusters::MediaInput::InputTypeEnum);
typedef void (*NullableMediaInputClusterInputTypeEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::MediaInput::InputTypeEnum> &);
typedef void (*KeypadInputClusterCecKeyCodeAttributeCallback)(void *, chip::app::Clusters::KeypadInput::CecKeyCode);
typedef void (*NullableKeypadInputClusterCecKeyCodeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::KeypadInput::CecKeyCode> &);
typedef void (*KeypadInputClusterStatusEnumAttributeCallback)(void *, chip::app::Clusters::KeypadInput::StatusEnum);
typedef void (*NullableKeypadInputClusterStatusEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::KeypadInput::StatusEnum> &);
typedef void (*ContentLauncherClusterMetricTypeEnumAttributeCallback)(void *, chip::app::Clusters::ContentLauncher::MetricTypeEnum);
typedef void (*NullableContentLauncherClusterMetricTypeEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ContentLauncher::MetricTypeEnum> &);
typedef void (*ContentLauncherClusterParameterEnumAttributeCallback)(void *, chip::app::Clusters::ContentLauncher::ParameterEnum);
typedef void (*NullableContentLauncherClusterParameterEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ContentLauncher::ParameterEnum> &);
typedef void (*ContentLauncherClusterStatusEnumAttributeCallback)(void *, chip::app::Clusters::ContentLauncher::StatusEnum);
typedef void (*NullableContentLauncherClusterStatusEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ContentLauncher::StatusEnum> &);
typedef void (*AudioOutputClusterOutputTypeEnumAttributeCallback)(void *, chip::app::Clusters::AudioOutput::OutputTypeEnum);
typedef void (*NullableAudioOutputClusterOutputTypeEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::AudioOutput::OutputTypeEnum> &);
typedef void (*ApplicationLauncherClusterStatusEnumAttributeCallback)(void *, chip::app::Clusters::ApplicationLauncher::StatusEnum);
typedef void (*NullableApplicationLauncherClusterStatusEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ApplicationLauncher::StatusEnum> &);
typedef void (*ApplicationBasicClusterApplicationStatusEnumAttributeCallback)(
    void *, chip::app::Clusters::ApplicationBasic::ApplicationStatusEnum);
typedef void (*NullableApplicationBasicClusterApplicationStatusEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ApplicationBasic::ApplicationStatusEnum> &);
typedef void (*TestClusterClusterSimpleEnumAttributeCallback)(void *, chip::app::Clusters::TestCluster::SimpleEnum);
typedef void (*NullableTestClusterClusterSimpleEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::TestCluster::SimpleEnum> &);
typedef void (*MessagingClusterEventIdAttributeCallback)(void *, chip::app::Clusters::Messaging::EventId);
typedef void (*NullableMessagingClusterEventIdAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::Messaging::EventId> &);
typedef void (*MessagingClusterMessagingControlConfirmationAttributeCallback)(
    void *, chip::app::Clusters::Messaging::MessagingControlConfirmation);
typedef void (*NullableMessagingClusterMessagingControlConfirmationAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::Messaging::MessagingControlConfirmation> &);
typedef void (*MessagingClusterMessagingControlEnhancedConfirmationAttributeCallback)(
    void *, chip::app::Clusters::Messaging::MessagingControlEnhancedConfirmation);
typedef void (*NullableMessagingClusterMessagingControlEnhancedConfirmationAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::Messaging::MessagingControlEnhancedConfirmation> &);
typedef void (*MessagingClusterMessagingControlImportanceAttributeCallback)(
    void *, chip::app::Clusters::Messaging::MessagingControlImportance);
typedef void (*NullableMessagingClusterMessagingControlImportanceAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::Messaging::MessagingControlImportance> &);
typedef void (*MessagingClusterMessagingControlTransmissionAttributeCallback)(
    void *, chip::app::Clusters::Messaging::MessagingControlTransmission);
typedef void (*NullableMessagingClusterMessagingControlTransmissionAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::Messaging::MessagingControlTransmission> &);
typedef void (*ApplianceEventsAndAlertClusterEventIdentificationAttributeCallback)(
    void *, chip::app::Clusters::ApplianceEventsAndAlert::EventIdentification);
typedef void (*NullableApplianceEventsAndAlertClusterEventIdentificationAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ApplianceEventsAndAlert::EventIdentification> &);

class CHIPDefaultSuccessCallbackBridge : public CHIPCallbackBridge<DefaultSuccessCallback>
{
public:
    CHIPDefaultSuccessCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                     bool keepAlive = false) :
        CHIPCallbackBridge<DefaultSuccessCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context);
};

class CHIPCommandSuccessCallbackBridge : public CHIPCallbackBridge<CommandSuccessCallback>
{
public:
    CHIPCommandSuccessCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                     bool keepAlive = false) :
        CHIPCallbackBridge<CommandSuccessCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::NullObjectType &);
};

class CHIPOctetStringAttributeCallbackBridge : public CHIPCallbackBridge<OctetStringAttributeCallback>
{
public:
    CHIPOctetStringAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                           bool keepAlive = false) :
        CHIPCallbackBridge<OctetStringAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::ByteSpan value);
};

class CHIPOctetStringAttributeCallbackSubscriptionBridge : public CHIPOctetStringAttributeCallbackBridge
{
public:
    CHIPOctetStringAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                       SubscriptionEstablishedHandler establishedHandler) :
        CHIPOctetStringAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableOctetStringAttributeCallbackBridge : public CHIPCallbackBridge<NullableOctetStringAttributeCallback>
{
public:
    CHIPNullableOctetStringAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                   bool keepAlive = false) :
        CHIPCallbackBridge<NullableOctetStringAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::Nullable<chip::ByteSpan> & value);
};

class CHIPNullableOctetStringAttributeCallbackSubscriptionBridge : public CHIPNullableOctetStringAttributeCallbackBridge
{
public:
    CHIPNullableOctetStringAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               CHIPActionBlock action,
                                                               SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableOctetStringAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPCharStringAttributeCallbackBridge : public CHIPCallbackBridge<CharStringAttributeCallback>
{
public:
    CHIPCharStringAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                          bool keepAlive = false) :
        CHIPCallbackBridge<CharStringAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::CharSpan value);
};

class CHIPCharStringAttributeCallbackSubscriptionBridge : public CHIPCharStringAttributeCallbackBridge
{
public:
    CHIPCharStringAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                      SubscriptionEstablishedHandler establishedHandler) :
        CHIPCharStringAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableCharStringAttributeCallbackBridge : public CHIPCallbackBridge<NullableCharStringAttributeCallback>
{
public:
    CHIPNullableCharStringAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                  bool keepAlive = false) :
        CHIPCallbackBridge<NullableCharStringAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::Nullable<chip::CharSpan> & value);
};

class CHIPNullableCharStringAttributeCallbackSubscriptionBridge : public CHIPNullableCharStringAttributeCallbackBridge
{
public:
    CHIPNullableCharStringAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              CHIPActionBlock action,
                                                              SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableCharStringAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPBooleanAttributeCallbackBridge : public CHIPCallbackBridge<BooleanAttributeCallback>
{
public:
    CHIPBooleanAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                       bool keepAlive = false) :
        CHIPCallbackBridge<BooleanAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, bool value);
};

class CHIPBooleanAttributeCallbackSubscriptionBridge : public CHIPBooleanAttributeCallbackBridge
{
public:
    CHIPBooleanAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                   SubscriptionEstablishedHandler establishedHandler) :
        CHIPBooleanAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableBooleanAttributeCallbackBridge : public CHIPCallbackBridge<NullableBooleanAttributeCallback>
{
public:
    CHIPNullableBooleanAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                               bool keepAlive = false) :
        CHIPCallbackBridge<NullableBooleanAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::Nullable<bool> & value);
};

class CHIPNullableBooleanAttributeCallbackSubscriptionBridge : public CHIPNullableBooleanAttributeCallbackBridge
{
public:
    CHIPNullableBooleanAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                           SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableBooleanAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPInt8uAttributeCallbackBridge : public CHIPCallbackBridge<Int8uAttributeCallback>
{
public:
    CHIPInt8uAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                     bool keepAlive = false) :
        CHIPCallbackBridge<Int8uAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, uint8_t value);
};

class CHIPInt8uAttributeCallbackSubscriptionBridge : public CHIPInt8uAttributeCallbackBridge
{
public:
    CHIPInt8uAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                 SubscriptionEstablishedHandler establishedHandler) :
        CHIPInt8uAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableInt8uAttributeCallbackBridge : public CHIPCallbackBridge<NullableInt8uAttributeCallback>
{
public:
    CHIPNullableInt8uAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                             bool keepAlive = false) :
        CHIPCallbackBridge<NullableInt8uAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::Nullable<uint8_t> & value);
};

class CHIPNullableInt8uAttributeCallbackSubscriptionBridge : public CHIPNullableInt8uAttributeCallbackBridge
{
public:
    CHIPNullableInt8uAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                         SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableInt8uAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPInt8sAttributeCallbackBridge : public CHIPCallbackBridge<Int8sAttributeCallback>
{
public:
    CHIPInt8sAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                     bool keepAlive = false) :
        CHIPCallbackBridge<Int8sAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, int8_t value);
};

class CHIPInt8sAttributeCallbackSubscriptionBridge : public CHIPInt8sAttributeCallbackBridge
{
public:
    CHIPInt8sAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                 SubscriptionEstablishedHandler establishedHandler) :
        CHIPInt8sAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableInt8sAttributeCallbackBridge : public CHIPCallbackBridge<NullableInt8sAttributeCallback>
{
public:
    CHIPNullableInt8sAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                             bool keepAlive = false) :
        CHIPCallbackBridge<NullableInt8sAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::Nullable<int8_t> & value);
};

class CHIPNullableInt8sAttributeCallbackSubscriptionBridge : public CHIPNullableInt8sAttributeCallbackBridge
{
public:
    CHIPNullableInt8sAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                         SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableInt8sAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPInt16uAttributeCallbackBridge : public CHIPCallbackBridge<Int16uAttributeCallback>
{
public:
    CHIPInt16uAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                      bool keepAlive = false) :
        CHIPCallbackBridge<Int16uAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, uint16_t value);
};

class CHIPInt16uAttributeCallbackSubscriptionBridge : public CHIPInt16uAttributeCallbackBridge
{
public:
    CHIPInt16uAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                  SubscriptionEstablishedHandler establishedHandler) :
        CHIPInt16uAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableInt16uAttributeCallbackBridge : public CHIPCallbackBridge<NullableInt16uAttributeCallback>
{
public:
    CHIPNullableInt16uAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                              bool keepAlive = false) :
        CHIPCallbackBridge<NullableInt16uAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::Nullable<uint16_t> & value);
};

class CHIPNullableInt16uAttributeCallbackSubscriptionBridge : public CHIPNullableInt16uAttributeCallbackBridge
{
public:
    CHIPNullableInt16uAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                          SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableInt16uAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPInt16sAttributeCallbackBridge : public CHIPCallbackBridge<Int16sAttributeCallback>
{
public:
    CHIPInt16sAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                      bool keepAlive = false) :
        CHIPCallbackBridge<Int16sAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, int16_t value);
};

class CHIPInt16sAttributeCallbackSubscriptionBridge : public CHIPInt16sAttributeCallbackBridge
{
public:
    CHIPInt16sAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                  SubscriptionEstablishedHandler establishedHandler) :
        CHIPInt16sAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableInt16sAttributeCallbackBridge : public CHIPCallbackBridge<NullableInt16sAttributeCallback>
{
public:
    CHIPNullableInt16sAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                              bool keepAlive = false) :
        CHIPCallbackBridge<NullableInt16sAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::Nullable<int16_t> & value);
};

class CHIPNullableInt16sAttributeCallbackSubscriptionBridge : public CHIPNullableInt16sAttributeCallbackBridge
{
public:
    CHIPNullableInt16sAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                          SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableInt16sAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPInt32uAttributeCallbackBridge : public CHIPCallbackBridge<Int32uAttributeCallback>
{
public:
    CHIPInt32uAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                      bool keepAlive = false) :
        CHIPCallbackBridge<Int32uAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, uint32_t value);
};

class CHIPInt32uAttributeCallbackSubscriptionBridge : public CHIPInt32uAttributeCallbackBridge
{
public:
    CHIPInt32uAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                  SubscriptionEstablishedHandler establishedHandler) :
        CHIPInt32uAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableInt32uAttributeCallbackBridge : public CHIPCallbackBridge<NullableInt32uAttributeCallback>
{
public:
    CHIPNullableInt32uAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                              bool keepAlive = false) :
        CHIPCallbackBridge<NullableInt32uAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::Nullable<uint32_t> & value);
};

class CHIPNullableInt32uAttributeCallbackSubscriptionBridge : public CHIPNullableInt32uAttributeCallbackBridge
{
public:
    CHIPNullableInt32uAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                          SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableInt32uAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPInt32sAttributeCallbackBridge : public CHIPCallbackBridge<Int32sAttributeCallback>
{
public:
    CHIPInt32sAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                      bool keepAlive = false) :
        CHIPCallbackBridge<Int32sAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, int32_t value);
};

class CHIPInt32sAttributeCallbackSubscriptionBridge : public CHIPInt32sAttributeCallbackBridge
{
public:
    CHIPInt32sAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                  SubscriptionEstablishedHandler establishedHandler) :
        CHIPInt32sAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableInt32sAttributeCallbackBridge : public CHIPCallbackBridge<NullableInt32sAttributeCallback>
{
public:
    CHIPNullableInt32sAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                              bool keepAlive = false) :
        CHIPCallbackBridge<NullableInt32sAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::Nullable<int32_t> & value);
};

class CHIPNullableInt32sAttributeCallbackSubscriptionBridge : public CHIPNullableInt32sAttributeCallbackBridge
{
public:
    CHIPNullableInt32sAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                          SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableInt32sAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPInt64uAttributeCallbackBridge : public CHIPCallbackBridge<Int64uAttributeCallback>
{
public:
    CHIPInt64uAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                      bool keepAlive = false) :
        CHIPCallbackBridge<Int64uAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, uint64_t value);
};

class CHIPInt64uAttributeCallbackSubscriptionBridge : public CHIPInt64uAttributeCallbackBridge
{
public:
    CHIPInt64uAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                  SubscriptionEstablishedHandler establishedHandler) :
        CHIPInt64uAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableInt64uAttributeCallbackBridge : public CHIPCallbackBridge<NullableInt64uAttributeCallback>
{
public:
    CHIPNullableInt64uAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                              bool keepAlive = false) :
        CHIPCallbackBridge<NullableInt64uAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::Nullable<uint64_t> & value);
};

class CHIPNullableInt64uAttributeCallbackSubscriptionBridge : public CHIPNullableInt64uAttributeCallbackBridge
{
public:
    CHIPNullableInt64uAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                          SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableInt64uAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPInt64sAttributeCallbackBridge : public CHIPCallbackBridge<Int64sAttributeCallback>
{
public:
    CHIPInt64sAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                      bool keepAlive = false) :
        CHIPCallbackBridge<Int64sAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, int64_t value);
};

class CHIPInt64sAttributeCallbackSubscriptionBridge : public CHIPInt64sAttributeCallbackBridge
{
public:
    CHIPInt64sAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                  SubscriptionEstablishedHandler establishedHandler) :
        CHIPInt64sAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableInt64sAttributeCallbackBridge : public CHIPCallbackBridge<NullableInt64sAttributeCallback>
{
public:
    CHIPNullableInt64sAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                              bool keepAlive = false) :
        CHIPCallbackBridge<NullableInt64sAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::Nullable<int64_t> & value);
};

class CHIPNullableInt64sAttributeCallbackSubscriptionBridge : public CHIPNullableInt64sAttributeCallbackBridge
{
public:
    CHIPNullableInt64sAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                          SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableInt64sAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPFloatAttributeCallbackBridge : public CHIPCallbackBridge<FloatAttributeCallback>
{
public:
    CHIPFloatAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                     bool keepAlive = false) :
        CHIPCallbackBridge<FloatAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, float value);
};

class CHIPFloatAttributeCallbackSubscriptionBridge : public CHIPFloatAttributeCallbackBridge
{
public:
    CHIPFloatAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                 SubscriptionEstablishedHandler establishedHandler) :
        CHIPFloatAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableFloatAttributeCallbackBridge : public CHIPCallbackBridge<NullableFloatAttributeCallback>
{
public:
    CHIPNullableFloatAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                             bool keepAlive = false) :
        CHIPCallbackBridge<NullableFloatAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::Nullable<float> & value);
};

class CHIPNullableFloatAttributeCallbackSubscriptionBridge : public CHIPNullableFloatAttributeCallbackBridge
{
public:
    CHIPNullableFloatAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                         SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableFloatAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPDoubleAttributeCallbackBridge : public CHIPCallbackBridge<DoubleAttributeCallback>
{
public:
    CHIPDoubleAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                      bool keepAlive = false) :
        CHIPCallbackBridge<DoubleAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, double value);
};

class CHIPDoubleAttributeCallbackSubscriptionBridge : public CHIPDoubleAttributeCallbackBridge
{
public:
    CHIPDoubleAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                  SubscriptionEstablishedHandler establishedHandler) :
        CHIPDoubleAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableDoubleAttributeCallbackBridge : public CHIPCallbackBridge<NullableDoubleAttributeCallback>
{
public:
    CHIPNullableDoubleAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                              bool keepAlive = false) :
        CHIPCallbackBridge<NullableDoubleAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::Nullable<double> & value);
};

class CHIPNullableDoubleAttributeCallbackSubscriptionBridge : public CHIPNullableDoubleAttributeCallbackBridge
{
public:
    CHIPNullableDoubleAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                          SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableDoubleAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPVendorIdAttributeCallbackBridge : public CHIPCallbackBridge<VendorIdAttributeCallback>
{
public:
    CHIPVendorIdAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                        bool keepAlive = false) :
        CHIPCallbackBridge<VendorIdAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::VendorId value);
};

class CHIPVendorIdAttributeCallbackSubscriptionBridge : public CHIPVendorIdAttributeCallbackBridge
{
public:
    CHIPVendorIdAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                    SubscriptionEstablishedHandler establishedHandler) :
        CHIPVendorIdAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableVendorIdAttributeCallbackBridge : public CHIPCallbackBridge<NullableVendorIdAttributeCallback>
{
public:
    CHIPNullableVendorIdAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                bool keepAlive = false) :
        CHIPCallbackBridge<NullableVendorIdAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::Nullable<chip::VendorId> & value);
};

class CHIPNullableVendorIdAttributeCallbackSubscriptionBridge : public CHIPNullableVendorIdAttributeCallbackBridge
{
public:
    CHIPNullableVendorIdAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                            SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableVendorIdAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPAccessControlAclListAttributeCallbackBridge : public CHIPCallbackBridge<AccessControlAclListAttributeCallback>
{
public:
    CHIPAccessControlAclListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                    bool keepAlive = false) :
        CHIPCallbackBridge<AccessControlAclListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::AccessControl::Structs::AccessControlEntry::DecodableType> &
            value);
};

class CHIPAccessControlAclListAttributeCallbackSubscriptionBridge : public CHIPAccessControlAclListAttributeCallbackBridge
{
public:
    CHIPAccessControlAclListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                CHIPActionBlock action,
                                                                SubscriptionEstablishedHandler establishedHandler) :
        CHIPAccessControlAclListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPAccessControlExtensionListAttributeCallbackBridge : public CHIPCallbackBridge<AccessControlExtensionListAttributeCallback>
{
public:
    CHIPAccessControlExtensionListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                          bool keepAlive = false) :
        CHIPCallbackBridge<AccessControlExtensionListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::AccessControl::Structs::ExtensionEntry::DecodableType> &
            value);
};

class CHIPAccessControlExtensionListAttributeCallbackSubscriptionBridge
    : public CHIPAccessControlExtensionListAttributeCallbackBridge
{
public:
    CHIPAccessControlExtensionListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      CHIPActionBlock action,
                                                                      SubscriptionEstablishedHandler establishedHandler) :
        CHIPAccessControlExtensionListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPAccessControlAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<AccessControlAttributeListListAttributeCallback>
{
public:
    CHIPAccessControlAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<AccessControlAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPAccessControlAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPAccessControlAttributeListListAttributeCallbackBridge
{
public:
    CHIPAccessControlAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          CHIPActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        CHIPAccessControlAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPAccountLoginAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<AccountLoginAttributeListListAttributeCallback>
{
public:
    CHIPAccountLoginAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                             CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<AccountLoginAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPAccountLoginAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPAccountLoginAttributeListListAttributeCallbackBridge
{
public:
    CHIPAccountLoginAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         CHIPActionBlock action,
                                                                         SubscriptionEstablishedHandler establishedHandler) :
        CHIPAccountLoginAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPAdministratorCommissioningAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<AdministratorCommissioningAttributeListListAttributeCallback>
{
public:
    CHIPAdministratorCommissioningAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<AdministratorCommissioningAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                         keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPAdministratorCommissioningAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPAdministratorCommissioningAttributeListListAttributeCallbackBridge
{
public:
    CHIPAdministratorCommissioningAttributeListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPAdministratorCommissioningAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPApplicationBasicAllowedVendorListListAttributeCallbackBridge
    : public CHIPCallbackBridge<ApplicationBasicAllowedVendorListListAttributeCallback>
{
public:
    CHIPApplicationBasicAllowedVendorListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<ApplicationBasicAllowedVendorListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                   keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::VendorId> & value);
};

class CHIPApplicationBasicAllowedVendorListListAttributeCallbackSubscriptionBridge
    : public CHIPApplicationBasicAllowedVendorListListAttributeCallbackBridge
{
public:
    CHIPApplicationBasicAllowedVendorListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPApplicationBasicAllowedVendorListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPApplicationBasicAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<ApplicationBasicAttributeListListAttributeCallback>
{
public:
    CHIPApplicationBasicAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<ApplicationBasicAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPApplicationBasicAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPApplicationBasicAttributeListListAttributeCallbackBridge
{
public:
    CHIPApplicationBasicAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             CHIPActionBlock action,
                                                                             SubscriptionEstablishedHandler establishedHandler) :
        CHIPApplicationBasicAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPApplicationLauncherApplicationLauncherListListAttributeCallbackBridge
    : public CHIPCallbackBridge<ApplicationLauncherApplicationLauncherListListAttributeCallback>
{
public:
    CHIPApplicationLauncherApplicationLauncherListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<ApplicationLauncherApplicationLauncherListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                            keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<uint16_t> & value);
};

class CHIPApplicationLauncherApplicationLauncherListListAttributeCallbackSubscriptionBridge
    : public CHIPApplicationLauncherApplicationLauncherListListAttributeCallbackBridge
{
public:
    CHIPApplicationLauncherApplicationLauncherListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPApplicationLauncherApplicationLauncherListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPApplicationLauncherAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<ApplicationLauncherAttributeListListAttributeCallback>
{
public:
    CHIPApplicationLauncherAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<ApplicationLauncherAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPApplicationLauncherAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPApplicationLauncherAttributeListListAttributeCallbackBridge
{
public:
    CHIPApplicationLauncherAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                CHIPActionBlock action,
                                                                                SubscriptionEstablishedHandler establishedHandler) :
        CHIPApplicationLauncherAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPAudioOutputAudioOutputListListAttributeCallbackBridge
    : public CHIPCallbackBridge<AudioOutputAudioOutputListListAttributeCallback>
{
public:
    CHIPAudioOutputAudioOutputListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<AudioOutputAudioOutputListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::AudioOutput::Structs::OutputInfo::DecodableType> & value);
};

class CHIPAudioOutputAudioOutputListListAttributeCallbackSubscriptionBridge
    : public CHIPAudioOutputAudioOutputListListAttributeCallbackBridge
{
public:
    CHIPAudioOutputAudioOutputListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          CHIPActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        CHIPAudioOutputAudioOutputListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPAudioOutputAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<AudioOutputAttributeListListAttributeCallback>
{
public:
    CHIPAudioOutputAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                            bool keepAlive = false) :
        CHIPCallbackBridge<AudioOutputAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPAudioOutputAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPAudioOutputAttributeListListAttributeCallbackBridge
{
public:
    CHIPAudioOutputAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        CHIPActionBlock action,
                                                                        SubscriptionEstablishedHandler establishedHandler) :
        CHIPAudioOutputAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPBarrierControlAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<BarrierControlAttributeListListAttributeCallback>
{
public:
    CHIPBarrierControlAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<BarrierControlAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPBarrierControlAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPBarrierControlAttributeListListAttributeCallbackBridge
{
public:
    CHIPBarrierControlAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           CHIPActionBlock action,
                                                                           SubscriptionEstablishedHandler establishedHandler) :
        CHIPBarrierControlAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPBasicAttributeListListAttributeCallbackBridge : public CHIPCallbackBridge<BasicAttributeListListAttributeCallback>
{
public:
    CHIPBasicAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                      bool keepAlive = false) :
        CHIPCallbackBridge<BasicAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPBasicAttributeListListAttributeCallbackSubscriptionBridge : public CHIPBasicAttributeListListAttributeCallbackBridge
{
public:
    CHIPBasicAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  CHIPActionBlock action,
                                                                  SubscriptionEstablishedHandler establishedHandler) :
        CHIPBasicAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPBinaryInputBasicAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<BinaryInputBasicAttributeListListAttributeCallback>
{
public:
    CHIPBinaryInputBasicAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<BinaryInputBasicAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPBinaryInputBasicAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPBinaryInputBasicAttributeListListAttributeCallbackBridge
{
public:
    CHIPBinaryInputBasicAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             CHIPActionBlock action,
                                                                             SubscriptionEstablishedHandler establishedHandler) :
        CHIPBinaryInputBasicAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPBindingAttributeListListAttributeCallbackBridge : public CHIPCallbackBridge<BindingAttributeListListAttributeCallback>
{
public:
    CHIPBindingAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                        bool keepAlive = false) :
        CHIPCallbackBridge<BindingAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPBindingAttributeListListAttributeCallbackSubscriptionBridge : public CHIPBindingAttributeListListAttributeCallbackBridge
{
public:
    CHIPBindingAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    CHIPActionBlock action,
                                                                    SubscriptionEstablishedHandler establishedHandler) :
        CHIPBindingAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPBooleanStateAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<BooleanStateAttributeListListAttributeCallback>
{
public:
    CHIPBooleanStateAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                             CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<BooleanStateAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPBooleanStateAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPBooleanStateAttributeListListAttributeCallbackBridge
{
public:
    CHIPBooleanStateAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         CHIPActionBlock action,
                                                                         SubscriptionEstablishedHandler establishedHandler) :
        CHIPBooleanStateAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPBridgedActionsActionListListAttributeCallbackBridge
    : public CHIPCallbackBridge<BridgedActionsActionListListAttributeCallback>
{
public:
    CHIPBridgedActionsActionListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                            bool keepAlive = false) :
        CHIPCallbackBridge<BridgedActionsActionListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::BridgedActions::Structs::ActionStruct::DecodableType> &
            value);
};

class CHIPBridgedActionsActionListListAttributeCallbackSubscriptionBridge
    : public CHIPBridgedActionsActionListListAttributeCallbackBridge
{
public:
    CHIPBridgedActionsActionListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        CHIPActionBlock action,
                                                                        SubscriptionEstablishedHandler establishedHandler) :
        CHIPBridgedActionsActionListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPBridgedActionsEndpointListListAttributeCallbackBridge
    : public CHIPCallbackBridge<BridgedActionsEndpointListListAttributeCallback>
{
public:
    CHIPBridgedActionsEndpointListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<BridgedActionsEndpointListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::BridgedActions::Structs::EndpointListStruct::DecodableType> &
            value);
};

class CHIPBridgedActionsEndpointListListAttributeCallbackSubscriptionBridge
    : public CHIPBridgedActionsEndpointListListAttributeCallbackBridge
{
public:
    CHIPBridgedActionsEndpointListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          CHIPActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        CHIPBridgedActionsEndpointListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPBridgedActionsAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<BridgedActionsAttributeListListAttributeCallback>
{
public:
    CHIPBridgedActionsAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<BridgedActionsAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPBridgedActionsAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPBridgedActionsAttributeListListAttributeCallbackBridge
{
public:
    CHIPBridgedActionsAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           CHIPActionBlock action,
                                                                           SubscriptionEstablishedHandler establishedHandler) :
        CHIPBridgedActionsAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPBridgedDeviceBasicAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<BridgedDeviceBasicAttributeListListAttributeCallback>
{
public:
    CHIPBridgedDeviceBasicAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<BridgedDeviceBasicAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPBridgedDeviceBasicAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPBridgedDeviceBasicAttributeListListAttributeCallbackBridge
{
public:
    CHIPBridgedDeviceBasicAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               CHIPActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        CHIPBridgedDeviceBasicAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPChannelChannelListListAttributeCallbackBridge : public CHIPCallbackBridge<ChannelChannelListListAttributeCallback>
{
public:
    CHIPChannelChannelListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                      bool keepAlive = false) :
        CHIPCallbackBridge<ChannelChannelListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::Channel::Structs::ChannelInfo::DecodableType> & value);
};

class CHIPChannelChannelListListAttributeCallbackSubscriptionBridge : public CHIPChannelChannelListListAttributeCallbackBridge
{
public:
    CHIPChannelChannelListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  CHIPActionBlock action,
                                                                  SubscriptionEstablishedHandler establishedHandler) :
        CHIPChannelChannelListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPChannelAttributeListListAttributeCallbackBridge : public CHIPCallbackBridge<ChannelAttributeListListAttributeCallback>
{
public:
    CHIPChannelAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                        bool keepAlive = false) :
        CHIPCallbackBridge<ChannelAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPChannelAttributeListListAttributeCallbackSubscriptionBridge : public CHIPChannelAttributeListListAttributeCallbackBridge
{
public:
    CHIPChannelAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    CHIPActionBlock action,
                                                                    SubscriptionEstablishedHandler establishedHandler) :
        CHIPChannelAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPColorControlAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<ColorControlAttributeListListAttributeCallback>
{
public:
    CHIPColorControlAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                             CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<ColorControlAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPColorControlAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPColorControlAttributeListListAttributeCallbackBridge
{
public:
    CHIPColorControlAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         CHIPActionBlock action,
                                                                         SubscriptionEstablishedHandler establishedHandler) :
        CHIPColorControlAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPContentLauncherAcceptHeaderListListAttributeCallbackBridge
    : public CHIPCallbackBridge<ContentLauncherAcceptHeaderListListAttributeCallback>
{
public:
    CHIPContentLauncherAcceptHeaderListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<ContentLauncherAcceptHeaderListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CharSpan> & value);
};

class CHIPContentLauncherAcceptHeaderListListAttributeCallbackSubscriptionBridge
    : public CHIPContentLauncherAcceptHeaderListListAttributeCallbackBridge
{
public:
    CHIPContentLauncherAcceptHeaderListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               CHIPActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        CHIPContentLauncherAcceptHeaderListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPContentLauncherAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<ContentLauncherAttributeListListAttributeCallback>
{
public:
    CHIPContentLauncherAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<ContentLauncherAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPContentLauncherAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPContentLauncherAttributeListListAttributeCallbackBridge
{
public:
    CHIPContentLauncherAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            CHIPActionBlock action,
                                                                            SubscriptionEstablishedHandler establishedHandler) :
        CHIPContentLauncherAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPDescriptorDeviceListListAttributeCallbackBridge : public CHIPCallbackBridge<DescriptorDeviceListListAttributeCallback>
{
public:
    CHIPDescriptorDeviceListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                        bool keepAlive = false) :
        CHIPCallbackBridge<DescriptorDeviceListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::Descriptor::Structs::DeviceType::DecodableType> & value);
};

class CHIPDescriptorDeviceListListAttributeCallbackSubscriptionBridge : public CHIPDescriptorDeviceListListAttributeCallbackBridge
{
public:
    CHIPDescriptorDeviceListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    CHIPActionBlock action,
                                                                    SubscriptionEstablishedHandler establishedHandler) :
        CHIPDescriptorDeviceListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPDescriptorServerListListAttributeCallbackBridge : public CHIPCallbackBridge<DescriptorServerListListAttributeCallback>
{
public:
    CHIPDescriptorServerListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                        bool keepAlive = false) :
        CHIPCallbackBridge<DescriptorServerListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::ClusterId> & value);
};

class CHIPDescriptorServerListListAttributeCallbackSubscriptionBridge : public CHIPDescriptorServerListListAttributeCallbackBridge
{
public:
    CHIPDescriptorServerListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    CHIPActionBlock action,
                                                                    SubscriptionEstablishedHandler establishedHandler) :
        CHIPDescriptorServerListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPDescriptorClientListListAttributeCallbackBridge : public CHIPCallbackBridge<DescriptorClientListListAttributeCallback>
{
public:
    CHIPDescriptorClientListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                        bool keepAlive = false) :
        CHIPCallbackBridge<DescriptorClientListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::ClusterId> & value);
};

class CHIPDescriptorClientListListAttributeCallbackSubscriptionBridge : public CHIPDescriptorClientListListAttributeCallbackBridge
{
public:
    CHIPDescriptorClientListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    CHIPActionBlock action,
                                                                    SubscriptionEstablishedHandler establishedHandler) :
        CHIPDescriptorClientListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPDescriptorPartsListListAttributeCallbackBridge : public CHIPCallbackBridge<DescriptorPartsListListAttributeCallback>
{
public:
    CHIPDescriptorPartsListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                       bool keepAlive = false) :
        CHIPCallbackBridge<DescriptorPartsListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::EndpointId> & value);
};

class CHIPDescriptorPartsListListAttributeCallbackSubscriptionBridge : public CHIPDescriptorPartsListListAttributeCallbackBridge
{
public:
    CHIPDescriptorPartsListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   CHIPActionBlock action,
                                                                   SubscriptionEstablishedHandler establishedHandler) :
        CHIPDescriptorPartsListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPDescriptorAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<DescriptorAttributeListListAttributeCallback>
{
public:
    CHIPDescriptorAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                           bool keepAlive = false) :
        CHIPCallbackBridge<DescriptorAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPDescriptorAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPDescriptorAttributeListListAttributeCallbackBridge
{
public:
    CHIPDescriptorAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       CHIPActionBlock action,
                                                                       SubscriptionEstablishedHandler establishedHandler) :
        CHIPDescriptorAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPDiagnosticLogsAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<DiagnosticLogsAttributeListListAttributeCallback>
{
public:
    CHIPDiagnosticLogsAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<DiagnosticLogsAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPDiagnosticLogsAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPDiagnosticLogsAttributeListListAttributeCallbackBridge
{
public:
    CHIPDiagnosticLogsAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           CHIPActionBlock action,
                                                                           SubscriptionEstablishedHandler establishedHandler) :
        CHIPDiagnosticLogsAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPDoorLockAttributeListListAttributeCallbackBridge : public CHIPCallbackBridge<DoorLockAttributeListListAttributeCallback>
{
public:
    CHIPDoorLockAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                         bool keepAlive = false) :
        CHIPCallbackBridge<DoorLockAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPDoorLockAttributeListListAttributeCallbackSubscriptionBridge : public CHIPDoorLockAttributeListListAttributeCallbackBridge
{
public:
    CHIPDoorLockAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     CHIPActionBlock action,
                                                                     SubscriptionEstablishedHandler establishedHandler) :
        CHIPDoorLockAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPElectricalMeasurementAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<ElectricalMeasurementAttributeListListAttributeCallback>
{
public:
    CHIPElectricalMeasurementAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<ElectricalMeasurementAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPElectricalMeasurementAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPElectricalMeasurementAttributeListListAttributeCallbackBridge
{
public:
    CHIPElectricalMeasurementAttributeListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPElectricalMeasurementAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPEthernetNetworkDiagnosticsAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<EthernetNetworkDiagnosticsAttributeListListAttributeCallback>
{
public:
    CHIPEthernetNetworkDiagnosticsAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<EthernetNetworkDiagnosticsAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                         keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPEthernetNetworkDiagnosticsAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPEthernetNetworkDiagnosticsAttributeListListAttributeCallbackBridge
{
public:
    CHIPEthernetNetworkDiagnosticsAttributeListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPEthernetNetworkDiagnosticsAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPFixedLabelLabelListListAttributeCallbackBridge : public CHIPCallbackBridge<FixedLabelLabelListListAttributeCallback>
{
public:
    CHIPFixedLabelLabelListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                       bool keepAlive = false) :
        CHIPCallbackBridge<FixedLabelLabelListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::FixedLabel::Structs::LabelStruct::DecodableType> & value);
};

class CHIPFixedLabelLabelListListAttributeCallbackSubscriptionBridge : public CHIPFixedLabelLabelListListAttributeCallbackBridge
{
public:
    CHIPFixedLabelLabelListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   CHIPActionBlock action,
                                                                   SubscriptionEstablishedHandler establishedHandler) :
        CHIPFixedLabelLabelListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPFixedLabelAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<FixedLabelAttributeListListAttributeCallback>
{
public:
    CHIPFixedLabelAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                           bool keepAlive = false) :
        CHIPCallbackBridge<FixedLabelAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPFixedLabelAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPFixedLabelAttributeListListAttributeCallbackBridge
{
public:
    CHIPFixedLabelAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       CHIPActionBlock action,
                                                                       SubscriptionEstablishedHandler establishedHandler) :
        CHIPFixedLabelAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPFlowMeasurementAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<FlowMeasurementAttributeListListAttributeCallback>
{
public:
    CHIPFlowMeasurementAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<FlowMeasurementAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPFlowMeasurementAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPFlowMeasurementAttributeListListAttributeCallbackBridge
{
public:
    CHIPFlowMeasurementAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            CHIPActionBlock action,
                                                                            SubscriptionEstablishedHandler establishedHandler) :
        CHIPFlowMeasurementAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPGeneralCommissioningBasicCommissioningInfoListListAttributeCallbackBridge
    : public CHIPCallbackBridge<GeneralCommissioningBasicCommissioningInfoListListAttributeCallback>
{
public:
    CHIPGeneralCommissioningBasicCommissioningInfoListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                  CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<GeneralCommissioningBasicCommissioningInfoListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                                keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::DecodableList<
                    chip::app::Clusters::GeneralCommissioning::Structs::BasicCommissioningInfoType::DecodableType> & value);
};

class CHIPGeneralCommissioningBasicCommissioningInfoListListAttributeCallbackSubscriptionBridge
    : public CHIPGeneralCommissioningBasicCommissioningInfoListListAttributeCallbackBridge
{
public:
    CHIPGeneralCommissioningBasicCommissioningInfoListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPGeneralCommissioningBasicCommissioningInfoListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPGeneralCommissioningAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<GeneralCommissioningAttributeListListAttributeCallback>
{
public:
    CHIPGeneralCommissioningAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<GeneralCommissioningAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                   keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPGeneralCommissioningAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPGeneralCommissioningAttributeListListAttributeCallbackBridge
{
public:
    CHIPGeneralCommissioningAttributeListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPGeneralCommissioningAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPGeneralDiagnosticsNetworkInterfacesListAttributeCallbackBridge
    : public CHIPCallbackBridge<GeneralDiagnosticsNetworkInterfacesListAttributeCallback>
{
public:
    CHIPGeneralDiagnosticsNetworkInterfacesListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<GeneralDiagnosticsNetworkInterfacesListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                     keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::DecodableList<
                                chip::app::Clusters::GeneralDiagnostics::Structs::NetworkInterfaceType::DecodableType> & value);
};

class CHIPGeneralDiagnosticsNetworkInterfacesListAttributeCallbackSubscriptionBridge
    : public CHIPGeneralDiagnosticsNetworkInterfacesListAttributeCallbackBridge
{
public:
    CHIPGeneralDiagnosticsNetworkInterfacesListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPGeneralDiagnosticsNetworkInterfacesListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPGeneralDiagnosticsActiveHardwareFaultsListAttributeCallbackBridge
    : public CHIPCallbackBridge<GeneralDiagnosticsActiveHardwareFaultsListAttributeCallback>
{
public:
    CHIPGeneralDiagnosticsActiveHardwareFaultsListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<GeneralDiagnosticsActiveHardwareFaultsListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<uint8_t> & value);
};

class CHIPGeneralDiagnosticsActiveHardwareFaultsListAttributeCallbackSubscriptionBridge
    : public CHIPGeneralDiagnosticsActiveHardwareFaultsListAttributeCallbackBridge
{
public:
    CHIPGeneralDiagnosticsActiveHardwareFaultsListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPGeneralDiagnosticsActiveHardwareFaultsListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPGeneralDiagnosticsActiveRadioFaultsListAttributeCallbackBridge
    : public CHIPCallbackBridge<GeneralDiagnosticsActiveRadioFaultsListAttributeCallback>
{
public:
    CHIPGeneralDiagnosticsActiveRadioFaultsListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<GeneralDiagnosticsActiveRadioFaultsListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                     keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<uint8_t> & value);
};

class CHIPGeneralDiagnosticsActiveRadioFaultsListAttributeCallbackSubscriptionBridge
    : public CHIPGeneralDiagnosticsActiveRadioFaultsListAttributeCallbackBridge
{
public:
    CHIPGeneralDiagnosticsActiveRadioFaultsListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPGeneralDiagnosticsActiveRadioFaultsListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPGeneralDiagnosticsActiveNetworkFaultsListAttributeCallbackBridge
    : public CHIPCallbackBridge<GeneralDiagnosticsActiveNetworkFaultsListAttributeCallback>
{
public:
    CHIPGeneralDiagnosticsActiveNetworkFaultsListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<GeneralDiagnosticsActiveNetworkFaultsListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<uint8_t> & value);
};

class CHIPGeneralDiagnosticsActiveNetworkFaultsListAttributeCallbackSubscriptionBridge
    : public CHIPGeneralDiagnosticsActiveNetworkFaultsListAttributeCallbackBridge
{
public:
    CHIPGeneralDiagnosticsActiveNetworkFaultsListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPGeneralDiagnosticsActiveNetworkFaultsListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPGeneralDiagnosticsAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<GeneralDiagnosticsAttributeListListAttributeCallback>
{
public:
    CHIPGeneralDiagnosticsAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<GeneralDiagnosticsAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPGeneralDiagnosticsAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPGeneralDiagnosticsAttributeListListAttributeCallbackBridge
{
public:
    CHIPGeneralDiagnosticsAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               CHIPActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        CHIPGeneralDiagnosticsAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPGroupKeyManagementGroupKeyMapListAttributeCallbackBridge
    : public CHIPCallbackBridge<GroupKeyManagementGroupKeyMapListAttributeCallback>
{
public:
    CHIPGroupKeyManagementGroupKeyMapListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<GroupKeyManagementGroupKeyMapListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::GroupKeyManagement::Structs::GroupKey::DecodableType> &
            value);
};

class CHIPGroupKeyManagementGroupKeyMapListAttributeCallbackSubscriptionBridge
    : public CHIPGroupKeyManagementGroupKeyMapListAttributeCallbackBridge
{
public:
    CHIPGroupKeyManagementGroupKeyMapListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             CHIPActionBlock action,
                                                                             SubscriptionEstablishedHandler establishedHandler) :
        CHIPGroupKeyManagementGroupKeyMapListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPGroupKeyManagementGroupTableListAttributeCallbackBridge
    : public CHIPCallbackBridge<GroupKeyManagementGroupTableListAttributeCallback>
{
public:
    CHIPGroupKeyManagementGroupTableListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<GroupKeyManagementGroupTableListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::GroupKeyManagement::Structs::GroupInfo::DecodableType> &
            value);
};

class CHIPGroupKeyManagementGroupTableListAttributeCallbackSubscriptionBridge
    : public CHIPGroupKeyManagementGroupTableListAttributeCallbackBridge
{
public:
    CHIPGroupKeyManagementGroupTableListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            CHIPActionBlock action,
                                                                            SubscriptionEstablishedHandler establishedHandler) :
        CHIPGroupKeyManagementGroupTableListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPGroupKeyManagementAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<GroupKeyManagementAttributeListListAttributeCallback>
{
public:
    CHIPGroupKeyManagementAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<GroupKeyManagementAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPGroupKeyManagementAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPGroupKeyManagementAttributeListListAttributeCallbackBridge
{
public:
    CHIPGroupKeyManagementAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               CHIPActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        CHIPGroupKeyManagementAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPGroupsAttributeListListAttributeCallbackBridge : public CHIPCallbackBridge<GroupsAttributeListListAttributeCallback>
{
public:
    CHIPGroupsAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                       bool keepAlive = false) :
        CHIPCallbackBridge<GroupsAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPGroupsAttributeListListAttributeCallbackSubscriptionBridge : public CHIPGroupsAttributeListListAttributeCallbackBridge
{
public:
    CHIPGroupsAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   CHIPActionBlock action,
                                                                   SubscriptionEstablishedHandler establishedHandler) :
        CHIPGroupsAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPIdentifyAttributeListListAttributeCallbackBridge : public CHIPCallbackBridge<IdentifyAttributeListListAttributeCallback>
{
public:
    CHIPIdentifyAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                         bool keepAlive = false) :
        CHIPCallbackBridge<IdentifyAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPIdentifyAttributeListListAttributeCallbackSubscriptionBridge : public CHIPIdentifyAttributeListListAttributeCallbackBridge
{
public:
    CHIPIdentifyAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     CHIPActionBlock action,
                                                                     SubscriptionEstablishedHandler establishedHandler) :
        CHIPIdentifyAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPIlluminanceMeasurementAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<IlluminanceMeasurementAttributeListListAttributeCallback>
{
public:
    CHIPIlluminanceMeasurementAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<IlluminanceMeasurementAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                     keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPIlluminanceMeasurementAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPIlluminanceMeasurementAttributeListListAttributeCallbackBridge
{
public:
    CHIPIlluminanceMeasurementAttributeListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPIlluminanceMeasurementAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPKeypadInputAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<KeypadInputAttributeListListAttributeCallback>
{
public:
    CHIPKeypadInputAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                            bool keepAlive = false) :
        CHIPCallbackBridge<KeypadInputAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPKeypadInputAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPKeypadInputAttributeListListAttributeCallbackBridge
{
public:
    CHIPKeypadInputAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        CHIPActionBlock action,
                                                                        SubscriptionEstablishedHandler establishedHandler) :
        CHIPKeypadInputAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPLevelControlAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<LevelControlAttributeListListAttributeCallback>
{
public:
    CHIPLevelControlAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                             CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<LevelControlAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPLevelControlAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPLevelControlAttributeListListAttributeCallbackBridge
{
public:
    CHIPLevelControlAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         CHIPActionBlock action,
                                                                         SubscriptionEstablishedHandler establishedHandler) :
        CHIPLevelControlAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPLowPowerAttributeListListAttributeCallbackBridge : public CHIPCallbackBridge<LowPowerAttributeListListAttributeCallback>
{
public:
    CHIPLowPowerAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                         bool keepAlive = false) :
        CHIPCallbackBridge<LowPowerAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPLowPowerAttributeListListAttributeCallbackSubscriptionBridge : public CHIPLowPowerAttributeListListAttributeCallbackBridge
{
public:
    CHIPLowPowerAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     CHIPActionBlock action,
                                                                     SubscriptionEstablishedHandler establishedHandler) :
        CHIPLowPowerAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPMediaInputMediaInputListListAttributeCallbackBridge
    : public CHIPCallbackBridge<MediaInputMediaInputListListAttributeCallback>
{
public:
    CHIPMediaInputMediaInputListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                            bool keepAlive = false) :
        CHIPCallbackBridge<MediaInputMediaInputListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::MediaInput::Structs::InputInfo::DecodableType> & value);
};

class CHIPMediaInputMediaInputListListAttributeCallbackSubscriptionBridge
    : public CHIPMediaInputMediaInputListListAttributeCallbackBridge
{
public:
    CHIPMediaInputMediaInputListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        CHIPActionBlock action,
                                                                        SubscriptionEstablishedHandler establishedHandler) :
        CHIPMediaInputMediaInputListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPMediaInputAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<MediaInputAttributeListListAttributeCallback>
{
public:
    CHIPMediaInputAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                           bool keepAlive = false) :
        CHIPCallbackBridge<MediaInputAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPMediaInputAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPMediaInputAttributeListListAttributeCallbackBridge
{
public:
    CHIPMediaInputAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       CHIPActionBlock action,
                                                                       SubscriptionEstablishedHandler establishedHandler) :
        CHIPMediaInputAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPMediaPlaybackAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<MediaPlaybackAttributeListListAttributeCallback>
{
public:
    CHIPMediaPlaybackAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<MediaPlaybackAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPMediaPlaybackAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPMediaPlaybackAttributeListListAttributeCallbackBridge
{
public:
    CHIPMediaPlaybackAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          CHIPActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        CHIPMediaPlaybackAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPModeSelectSupportedModesListAttributeCallbackBridge
    : public CHIPCallbackBridge<ModeSelectSupportedModesListAttributeCallback>
{
public:
    CHIPModeSelectSupportedModesListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                            bool keepAlive = false) :
        CHIPCallbackBridge<ModeSelectSupportedModesListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::ModeSelect::Structs::ModeOptionStruct::DecodableType> &
            value);
};

class CHIPModeSelectSupportedModesListAttributeCallbackSubscriptionBridge
    : public CHIPModeSelectSupportedModesListAttributeCallbackBridge
{
public:
    CHIPModeSelectSupportedModesListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        CHIPActionBlock action,
                                                                        SubscriptionEstablishedHandler establishedHandler) :
        CHIPModeSelectSupportedModesListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPModeSelectAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<ModeSelectAttributeListListAttributeCallback>
{
public:
    CHIPModeSelectAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                           bool keepAlive = false) :
        CHIPCallbackBridge<ModeSelectAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPModeSelectAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPModeSelectAttributeListListAttributeCallbackBridge
{
public:
    CHIPModeSelectAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       CHIPActionBlock action,
                                                                       SubscriptionEstablishedHandler establishedHandler) :
        CHIPModeSelectAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNetworkCommissioningNetworksListAttributeCallbackBridge
    : public CHIPCallbackBridge<NetworkCommissioningNetworksListAttributeCallback>
{
public:
    CHIPNetworkCommissioningNetworksListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NetworkCommissioningNetworksListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::NetworkCommissioning::Structs::NetworkInfo::DecodableType> &
            value);
};

class CHIPNetworkCommissioningNetworksListAttributeCallbackSubscriptionBridge
    : public CHIPNetworkCommissioningNetworksListAttributeCallbackBridge
{
public:
    CHIPNetworkCommissioningNetworksListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            CHIPActionBlock action,
                                                                            SubscriptionEstablishedHandler establishedHandler) :
        CHIPNetworkCommissioningNetworksListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPOtaSoftwareUpdateProviderAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<OtaSoftwareUpdateProviderAttributeListListAttributeCallback>
{
public:
    CHIPOtaSoftwareUpdateProviderAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<OtaSoftwareUpdateProviderAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPOtaSoftwareUpdateProviderAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPOtaSoftwareUpdateProviderAttributeListListAttributeCallbackBridge
{
public:
    CHIPOtaSoftwareUpdateProviderAttributeListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPOtaSoftwareUpdateProviderAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPOtaSoftwareUpdateRequestorDefaultOtaProvidersListAttributeCallbackBridge
    : public CHIPCallbackBridge<OtaSoftwareUpdateRequestorDefaultOtaProvidersListAttributeCallback>
{
public:
    CHIPOtaSoftwareUpdateRequestorDefaultOtaProvidersListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                 CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<OtaSoftwareUpdateRequestorDefaultOtaProvidersListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                               keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::DecodableList<
                                chip::app::Clusters::OtaSoftwareUpdateRequestor::Structs::ProviderLocation::DecodableType> & value);
};

class CHIPOtaSoftwareUpdateRequestorDefaultOtaProvidersListAttributeCallbackSubscriptionBridge
    : public CHIPOtaSoftwareUpdateRequestorDefaultOtaProvidersListAttributeCallbackBridge
{
public:
    CHIPOtaSoftwareUpdateRequestorDefaultOtaProvidersListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPOtaSoftwareUpdateRequestorDefaultOtaProvidersListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPOtaSoftwareUpdateRequestorAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<OtaSoftwareUpdateRequestorAttributeListListAttributeCallback>
{
public:
    CHIPOtaSoftwareUpdateRequestorAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<OtaSoftwareUpdateRequestorAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                         keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPOtaSoftwareUpdateRequestorAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPOtaSoftwareUpdateRequestorAttributeListListAttributeCallbackBridge
{
public:
    CHIPOtaSoftwareUpdateRequestorAttributeListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPOtaSoftwareUpdateRequestorAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPOccupancySensingAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<OccupancySensingAttributeListListAttributeCallback>
{
public:
    CHIPOccupancySensingAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<OccupancySensingAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPOccupancySensingAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPOccupancySensingAttributeListListAttributeCallbackBridge
{
public:
    CHIPOccupancySensingAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             CHIPActionBlock action,
                                                                             SubscriptionEstablishedHandler establishedHandler) :
        CHIPOccupancySensingAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPOnOffAttributeListListAttributeCallbackBridge : public CHIPCallbackBridge<OnOffAttributeListListAttributeCallback>
{
public:
    CHIPOnOffAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                      bool keepAlive = false) :
        CHIPCallbackBridge<OnOffAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPOnOffAttributeListListAttributeCallbackSubscriptionBridge : public CHIPOnOffAttributeListListAttributeCallbackBridge
{
public:
    CHIPOnOffAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  CHIPActionBlock action,
                                                                  SubscriptionEstablishedHandler establishedHandler) :
        CHIPOnOffAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPOnOffSwitchConfigurationAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<OnOffSwitchConfigurationAttributeListListAttributeCallback>
{
public:
    CHIPOnOffSwitchConfigurationAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<OnOffSwitchConfigurationAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPOnOffSwitchConfigurationAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPOnOffSwitchConfigurationAttributeListListAttributeCallbackBridge
{
public:
    CHIPOnOffSwitchConfigurationAttributeListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPOnOffSwitchConfigurationAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPOperationalCredentialsFabricsListListAttributeCallbackBridge
    : public CHIPCallbackBridge<OperationalCredentialsFabricsListListAttributeCallback>
{
public:
    CHIPOperationalCredentialsFabricsListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<OperationalCredentialsFabricsListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                   keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::DecodableList<
                                chip::app::Clusters::OperationalCredentials::Structs::FabricDescriptor::DecodableType> & value);
};

class CHIPOperationalCredentialsFabricsListListAttributeCallbackSubscriptionBridge
    : public CHIPOperationalCredentialsFabricsListListAttributeCallbackBridge
{
public:
    CHIPOperationalCredentialsFabricsListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPOperationalCredentialsFabricsListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPOperationalCredentialsTrustedRootCertificatesListAttributeCallbackBridge
    : public CHIPCallbackBridge<OperationalCredentialsTrustedRootCertificatesListAttributeCallback>
{
public:
    CHIPOperationalCredentialsTrustedRootCertificatesListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                 CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<OperationalCredentialsTrustedRootCertificatesListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                               keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::ByteSpan> & value);
};

class CHIPOperationalCredentialsTrustedRootCertificatesListAttributeCallbackSubscriptionBridge
    : public CHIPOperationalCredentialsTrustedRootCertificatesListAttributeCallbackBridge
{
public:
    CHIPOperationalCredentialsTrustedRootCertificatesListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPOperationalCredentialsTrustedRootCertificatesListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPOperationalCredentialsAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<OperationalCredentialsAttributeListListAttributeCallback>
{
public:
    CHIPOperationalCredentialsAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<OperationalCredentialsAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                     keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPOperationalCredentialsAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPOperationalCredentialsAttributeListListAttributeCallbackBridge
{
public:
    CHIPOperationalCredentialsAttributeListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPOperationalCredentialsAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPPowerSourceActiveBatteryFaultsListAttributeCallbackBridge
    : public CHIPCallbackBridge<PowerSourceActiveBatteryFaultsListAttributeCallback>
{
public:
    CHIPPowerSourceActiveBatteryFaultsListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<PowerSourceActiveBatteryFaultsListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<uint8_t> & value);
};

class CHIPPowerSourceActiveBatteryFaultsListAttributeCallbackSubscriptionBridge
    : public CHIPPowerSourceActiveBatteryFaultsListAttributeCallbackBridge
{
public:
    CHIPPowerSourceActiveBatteryFaultsListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              CHIPActionBlock action,
                                                                              SubscriptionEstablishedHandler establishedHandler) :
        CHIPPowerSourceActiveBatteryFaultsListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPPowerSourceAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<PowerSourceAttributeListListAttributeCallback>
{
public:
    CHIPPowerSourceAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                            bool keepAlive = false) :
        CHIPCallbackBridge<PowerSourceAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPPowerSourceAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPPowerSourceAttributeListListAttributeCallbackBridge
{
public:
    CHIPPowerSourceAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        CHIPActionBlock action,
                                                                        SubscriptionEstablishedHandler establishedHandler) :
        CHIPPowerSourceAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPPowerSourceConfigurationSourcesListAttributeCallbackBridge
    : public CHIPCallbackBridge<PowerSourceConfigurationSourcesListAttributeCallback>
{
public:
    CHIPPowerSourceConfigurationSourcesListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<PowerSourceConfigurationSourcesListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<uint8_t> & value);
};

class CHIPPowerSourceConfigurationSourcesListAttributeCallbackSubscriptionBridge
    : public CHIPPowerSourceConfigurationSourcesListAttributeCallbackBridge
{
public:
    CHIPPowerSourceConfigurationSourcesListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               CHIPActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        CHIPPowerSourceConfigurationSourcesListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPPowerSourceConfigurationAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<PowerSourceConfigurationAttributeListListAttributeCallback>
{
public:
    CHIPPowerSourceConfigurationAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<PowerSourceConfigurationAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPPowerSourceConfigurationAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPPowerSourceConfigurationAttributeListListAttributeCallbackBridge
{
public:
    CHIPPowerSourceConfigurationAttributeListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPPowerSourceConfigurationAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPPressureMeasurementAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<PressureMeasurementAttributeListListAttributeCallback>
{
public:
    CHIPPressureMeasurementAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<PressureMeasurementAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPPressureMeasurementAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPPressureMeasurementAttributeListListAttributeCallbackBridge
{
public:
    CHIPPressureMeasurementAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                CHIPActionBlock action,
                                                                                SubscriptionEstablishedHandler establishedHandler) :
        CHIPPressureMeasurementAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPPumpConfigurationAndControlAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<PumpConfigurationAndControlAttributeListListAttributeCallback>
{
public:
    CHIPPumpConfigurationAndControlAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<PumpConfigurationAndControlAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                          keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPPumpConfigurationAndControlAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPPumpConfigurationAndControlAttributeListListAttributeCallbackBridge
{
public:
    CHIPPumpConfigurationAndControlAttributeListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPPumpConfigurationAndControlAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPRelativeHumidityMeasurementAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<RelativeHumidityMeasurementAttributeListListAttributeCallback>
{
public:
    CHIPRelativeHumidityMeasurementAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<RelativeHumidityMeasurementAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                          keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPRelativeHumidityMeasurementAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPRelativeHumidityMeasurementAttributeListListAttributeCallbackBridge
{
public:
    CHIPRelativeHumidityMeasurementAttributeListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPRelativeHumidityMeasurementAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPScenesAttributeListListAttributeCallbackBridge : public CHIPCallbackBridge<ScenesAttributeListListAttributeCallback>
{
public:
    CHIPScenesAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                       bool keepAlive = false) :
        CHIPCallbackBridge<ScenesAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPScenesAttributeListListAttributeCallbackSubscriptionBridge : public CHIPScenesAttributeListListAttributeCallbackBridge
{
public:
    CHIPScenesAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   CHIPActionBlock action,
                                                                   SubscriptionEstablishedHandler establishedHandler) :
        CHIPScenesAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPSoftwareDiagnosticsThreadMetricsListAttributeCallbackBridge
    : public CHIPCallbackBridge<SoftwareDiagnosticsThreadMetricsListAttributeCallback>
{
public:
    CHIPSoftwareDiagnosticsThreadMetricsListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<SoftwareDiagnosticsThreadMetricsListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::SoftwareDiagnostics::Structs::ThreadMetrics::DecodableType> &
            value);
};

class CHIPSoftwareDiagnosticsThreadMetricsListAttributeCallbackSubscriptionBridge
    : public CHIPSoftwareDiagnosticsThreadMetricsListAttributeCallbackBridge
{
public:
    CHIPSoftwareDiagnosticsThreadMetricsListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                CHIPActionBlock action,
                                                                                SubscriptionEstablishedHandler establishedHandler) :
        CHIPSoftwareDiagnosticsThreadMetricsListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPSoftwareDiagnosticsAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<SoftwareDiagnosticsAttributeListListAttributeCallback>
{
public:
    CHIPSoftwareDiagnosticsAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<SoftwareDiagnosticsAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPSoftwareDiagnosticsAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPSoftwareDiagnosticsAttributeListListAttributeCallbackBridge
{
public:
    CHIPSoftwareDiagnosticsAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                CHIPActionBlock action,
                                                                                SubscriptionEstablishedHandler establishedHandler) :
        CHIPSoftwareDiagnosticsAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPSwitchAttributeListListAttributeCallbackBridge : public CHIPCallbackBridge<SwitchAttributeListListAttributeCallback>
{
public:
    CHIPSwitchAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                       bool keepAlive = false) :
        CHIPCallbackBridge<SwitchAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPSwitchAttributeListListAttributeCallbackSubscriptionBridge : public CHIPSwitchAttributeListListAttributeCallbackBridge
{
public:
    CHIPSwitchAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   CHIPActionBlock action,
                                                                   SubscriptionEstablishedHandler establishedHandler) :
        CHIPSwitchAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPTargetNavigatorTargetNavigatorListListAttributeCallbackBridge
    : public CHIPCallbackBridge<TargetNavigatorTargetNavigatorListListAttributeCallback>
{
public:
    CHIPTargetNavigatorTargetNavigatorListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<TargetNavigatorTargetNavigatorListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::TargetNavigator::Structs::TargetInfo::DecodableType> &
            value);
};

class CHIPTargetNavigatorTargetNavigatorListListAttributeCallbackSubscriptionBridge
    : public CHIPTargetNavigatorTargetNavigatorListListAttributeCallbackBridge
{
public:
    CHIPTargetNavigatorTargetNavigatorListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPTargetNavigatorTargetNavigatorListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPTargetNavigatorAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<TargetNavigatorAttributeListListAttributeCallback>
{
public:
    CHIPTargetNavigatorAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<TargetNavigatorAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPTargetNavigatorAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPTargetNavigatorAttributeListListAttributeCallbackBridge
{
public:
    CHIPTargetNavigatorAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            CHIPActionBlock action,
                                                                            SubscriptionEstablishedHandler establishedHandler) :
        CHIPTargetNavigatorAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPTemperatureMeasurementAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<TemperatureMeasurementAttributeListListAttributeCallback>
{
public:
    CHIPTemperatureMeasurementAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<TemperatureMeasurementAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                     keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPTemperatureMeasurementAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPTemperatureMeasurementAttributeListListAttributeCallbackBridge
{
public:
    CHIPTemperatureMeasurementAttributeListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPTemperatureMeasurementAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPTestClusterListInt8uListAttributeCallbackBridge : public CHIPCallbackBridge<TestClusterListInt8uListAttributeCallback>
{
public:
    CHIPTestClusterListInt8uListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                        bool keepAlive = false) :
        CHIPCallbackBridge<TestClusterListInt8uListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<uint8_t> & value);
};

class CHIPTestClusterListInt8uListAttributeCallbackSubscriptionBridge : public CHIPTestClusterListInt8uListAttributeCallbackBridge
{
public:
    CHIPTestClusterListInt8uListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    CHIPActionBlock action,
                                                                    SubscriptionEstablishedHandler establishedHandler) :
        CHIPTestClusterListInt8uListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPTestClusterListOctetStringListAttributeCallbackBridge
    : public CHIPCallbackBridge<TestClusterListOctetStringListAttributeCallback>
{
public:
    CHIPTestClusterListOctetStringListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<TestClusterListOctetStringListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::ByteSpan> & value);
};

class CHIPTestClusterListOctetStringListAttributeCallbackSubscriptionBridge
    : public CHIPTestClusterListOctetStringListAttributeCallbackBridge
{
public:
    CHIPTestClusterListOctetStringListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          CHIPActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        CHIPTestClusterListOctetStringListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPTestClusterListStructOctetStringListAttributeCallbackBridge
    : public CHIPCallbackBridge<TestClusterListStructOctetStringListAttributeCallback>
{
public:
    CHIPTestClusterListStructOctetStringListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<TestClusterListStructOctetStringListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::TestCluster::Structs::TestListStructOctet::DecodableType> &
            value);
};

class CHIPTestClusterListStructOctetStringListAttributeCallbackSubscriptionBridge
    : public CHIPTestClusterListStructOctetStringListAttributeCallbackBridge
{
public:
    CHIPTestClusterListStructOctetStringListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                CHIPActionBlock action,
                                                                                SubscriptionEstablishedHandler establishedHandler) :
        CHIPTestClusterListStructOctetStringListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPTestClusterListNullablesAndOptionalsStructListAttributeCallbackBridge
    : public CHIPCallbackBridge<TestClusterListNullablesAndOptionalsStructListAttributeCallback>
{
public:
    CHIPTestClusterListNullablesAndOptionalsStructListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<TestClusterListNullablesAndOptionalsStructListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                            keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::DecodableList<
                                chip::app::Clusters::TestCluster::Structs::NullablesAndOptionalsStruct::DecodableType> & value);
};

class CHIPTestClusterListNullablesAndOptionalsStructListAttributeCallbackSubscriptionBridge
    : public CHIPTestClusterListNullablesAndOptionalsStructListAttributeCallbackBridge
{
public:
    CHIPTestClusterListNullablesAndOptionalsStructListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPTestClusterListNullablesAndOptionalsStructListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPTestClusterListLongOctetStringListAttributeCallbackBridge
    : public CHIPCallbackBridge<TestClusterListLongOctetStringListAttributeCallback>
{
public:
    CHIPTestClusterListLongOctetStringListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<TestClusterListLongOctetStringListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::ByteSpan> & value);
};

class CHIPTestClusterListLongOctetStringListAttributeCallbackSubscriptionBridge
    : public CHIPTestClusterListLongOctetStringListAttributeCallbackBridge
{
public:
    CHIPTestClusterListLongOctetStringListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              CHIPActionBlock action,
                                                                              SubscriptionEstablishedHandler establishedHandler) :
        CHIPTestClusterListLongOctetStringListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPTestClusterAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<TestClusterAttributeListListAttributeCallback>
{
public:
    CHIPTestClusterAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                            bool keepAlive = false) :
        CHIPCallbackBridge<TestClusterAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPTestClusterAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPTestClusterAttributeListListAttributeCallbackBridge
{
public:
    CHIPTestClusterAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        CHIPActionBlock action,
                                                                        SubscriptionEstablishedHandler establishedHandler) :
        CHIPTestClusterAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPThermostatAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<ThermostatAttributeListListAttributeCallback>
{
public:
    CHIPThermostatAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                           bool keepAlive = false) :
        CHIPCallbackBridge<ThermostatAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPThermostatAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPThermostatAttributeListListAttributeCallbackBridge
{
public:
    CHIPThermostatAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       CHIPActionBlock action,
                                                                       SubscriptionEstablishedHandler establishedHandler) :
        CHIPThermostatAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPThermostatUserInterfaceConfigurationAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<ThermostatUserInterfaceConfigurationAttributeListListAttributeCallback>
{
public:
    CHIPThermostatUserInterfaceConfigurationAttributeListListAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                     ResponseHandler handler,
                                                                                     CHIPActionBlock action,
                                                                                     bool keepAlive = false) :
        CHIPCallbackBridge<ThermostatUserInterfaceConfigurationAttributeListListAttributeCallback>(queue, handler, action,
                                                                                                   OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPThermostatUserInterfaceConfigurationAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPThermostatUserInterfaceConfigurationAttributeListListAttributeCallbackBridge
{
public:
    CHIPThermostatUserInterfaceConfigurationAttributeListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPThermostatUserInterfaceConfigurationAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPThreadNetworkDiagnosticsNeighborTableListListAttributeCallbackBridge
    : public CHIPCallbackBridge<ThreadNetworkDiagnosticsNeighborTableListListAttributeCallback>
{
public:
    CHIPThreadNetworkDiagnosticsNeighborTableListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<ThreadNetworkDiagnosticsNeighborTableListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                           keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::DecodableList<
                                chip::app::Clusters::ThreadNetworkDiagnostics::Structs::NeighborTable::DecodableType> & value);
};

class CHIPThreadNetworkDiagnosticsNeighborTableListListAttributeCallbackSubscriptionBridge
    : public CHIPThreadNetworkDiagnosticsNeighborTableListListAttributeCallbackBridge
{
public:
    CHIPThreadNetworkDiagnosticsNeighborTableListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPThreadNetworkDiagnosticsNeighborTableListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPThreadNetworkDiagnosticsRouteTableListListAttributeCallbackBridge
    : public CHIPCallbackBridge<ThreadNetworkDiagnosticsRouteTableListListAttributeCallback>
{
public:
    CHIPThreadNetworkDiagnosticsRouteTableListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<ThreadNetworkDiagnosticsRouteTableListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::DecodableList<
                                chip::app::Clusters::ThreadNetworkDiagnostics::Structs::RouteTable::DecodableType> & value);
};

class CHIPThreadNetworkDiagnosticsRouteTableListListAttributeCallbackSubscriptionBridge
    : public CHIPThreadNetworkDiagnosticsRouteTableListListAttributeCallbackBridge
{
public:
    CHIPThreadNetworkDiagnosticsRouteTableListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPThreadNetworkDiagnosticsRouteTableListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPThreadNetworkDiagnosticsSecurityPolicyListAttributeCallbackBridge
    : public CHIPCallbackBridge<ThreadNetworkDiagnosticsSecurityPolicyListAttributeCallback>
{
public:
    CHIPThreadNetworkDiagnosticsSecurityPolicyListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<ThreadNetworkDiagnosticsSecurityPolicyListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::DecodableList<
                                chip::app::Clusters::ThreadNetworkDiagnostics::Structs::SecurityPolicy::DecodableType> & value);
};

class CHIPThreadNetworkDiagnosticsSecurityPolicyListAttributeCallbackSubscriptionBridge
    : public CHIPThreadNetworkDiagnosticsSecurityPolicyListAttributeCallbackBridge
{
public:
    CHIPThreadNetworkDiagnosticsSecurityPolicyListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPThreadNetworkDiagnosticsSecurityPolicyListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPThreadNetworkDiagnosticsOperationalDatasetComponentsListAttributeCallbackBridge
    : public CHIPCallbackBridge<ThreadNetworkDiagnosticsOperationalDatasetComponentsListAttributeCallback>
{
public:
    CHIPThreadNetworkDiagnosticsOperationalDatasetComponentsListAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                        ResponseHandler handler,
                                                                                        CHIPActionBlock action,
                                                                                        bool keepAlive = false) :
        CHIPCallbackBridge<ThreadNetworkDiagnosticsOperationalDatasetComponentsListAttributeCallback>(queue, handler, action,
                                                                                                      OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::DecodableList<
                    chip::app::Clusters::ThreadNetworkDiagnostics::Structs::OperationalDatasetComponents::DecodableType> & value);
};

class CHIPThreadNetworkDiagnosticsOperationalDatasetComponentsListAttributeCallbackSubscriptionBridge
    : public CHIPThreadNetworkDiagnosticsOperationalDatasetComponentsListAttributeCallbackBridge
{
public:
    CHIPThreadNetworkDiagnosticsOperationalDatasetComponentsListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPThreadNetworkDiagnosticsOperationalDatasetComponentsListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPThreadNetworkDiagnosticsActiveNetworkFaultsListListAttributeCallbackBridge
    : public CHIPCallbackBridge<ThreadNetworkDiagnosticsActiveNetworkFaultsListListAttributeCallback>
{
public:
    CHIPThreadNetworkDiagnosticsActiveNetworkFaultsListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                   CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<ThreadNetworkDiagnosticsActiveNetworkFaultsListListAttributeCallback>(queue, handler, action,
                                                                                                 OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::DecodableList<chip::app::Clusters::ThreadNetworkDiagnostics::NetworkFault> & value);
};

class CHIPThreadNetworkDiagnosticsActiveNetworkFaultsListListAttributeCallbackSubscriptionBridge
    : public CHIPThreadNetworkDiagnosticsActiveNetworkFaultsListListAttributeCallbackBridge
{
public:
    CHIPThreadNetworkDiagnosticsActiveNetworkFaultsListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPThreadNetworkDiagnosticsActiveNetworkFaultsListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPThreadNetworkDiagnosticsAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<ThreadNetworkDiagnosticsAttributeListListAttributeCallback>
{
public:
    CHIPThreadNetworkDiagnosticsAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<ThreadNetworkDiagnosticsAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPThreadNetworkDiagnosticsAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPThreadNetworkDiagnosticsAttributeListListAttributeCallbackBridge
{
public:
    CHIPThreadNetworkDiagnosticsAttributeListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPThreadNetworkDiagnosticsAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPUserLabelLabelListListAttributeCallbackBridge : public CHIPCallbackBridge<UserLabelLabelListListAttributeCallback>
{
public:
    CHIPUserLabelLabelListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                      bool keepAlive = false) :
        CHIPCallbackBridge<UserLabelLabelListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::UserLabel::Structs::LabelStruct::DecodableType> & value);
};

class CHIPUserLabelLabelListListAttributeCallbackSubscriptionBridge : public CHIPUserLabelLabelListListAttributeCallbackBridge
{
public:
    CHIPUserLabelLabelListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  CHIPActionBlock action,
                                                                  SubscriptionEstablishedHandler establishedHandler) :
        CHIPUserLabelLabelListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPWakeOnLanAttributeListListAttributeCallbackBridge : public CHIPCallbackBridge<WakeOnLanAttributeListListAttributeCallback>
{
public:
    CHIPWakeOnLanAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                          bool keepAlive = false) :
        CHIPCallbackBridge<WakeOnLanAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPWakeOnLanAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPWakeOnLanAttributeListListAttributeCallbackBridge
{
public:
    CHIPWakeOnLanAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      CHIPActionBlock action,
                                                                      SubscriptionEstablishedHandler establishedHandler) :
        CHIPWakeOnLanAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPWiFiNetworkDiagnosticsAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<WiFiNetworkDiagnosticsAttributeListListAttributeCallback>
{
public:
    CHIPWiFiNetworkDiagnosticsAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<WiFiNetworkDiagnosticsAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                     keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPWiFiNetworkDiagnosticsAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPWiFiNetworkDiagnosticsAttributeListListAttributeCallbackBridge
{
public:
    CHIPWiFiNetworkDiagnosticsAttributeListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPWiFiNetworkDiagnosticsAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPWindowCoveringAttributeListListAttributeCallbackBridge
    : public CHIPCallbackBridge<WindowCoveringAttributeListListAttributeCallback>
{
public:
    CHIPWindowCoveringAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<WindowCoveringAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class CHIPWindowCoveringAttributeListListAttributeCallbackSubscriptionBridge
    : public CHIPWindowCoveringAttributeListListAttributeCallbackBridge
{
public:
    CHIPWindowCoveringAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           CHIPActionBlock action,
                                                                           SubscriptionEstablishedHandler establishedHandler) :
        CHIPWindowCoveringAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPAccountLoginClusterGetSetupPINResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPAccountLoginClusterGetSetupPINResponseCallbackType>
{
public:
    CHIPAccountLoginClusterGetSetupPINResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                             CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<CHIPAccountLoginClusterGetSetupPINResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                   keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::AccountLogin::Commands::GetSetupPINResponse::DecodableType & data);
};

class CHIPApplicationLauncherClusterLauncherResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPApplicationLauncherClusterLauncherResponseCallbackType>
{
public:
    CHIPApplicationLauncherClusterLauncherResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<CHIPApplicationLauncherClusterLauncherResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::ApplicationLauncher::Commands::LauncherResponse::DecodableType & data);
};

class CHIPChannelClusterChangeChannelResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPChannelClusterChangeChannelResponseCallbackType>
{
public:
    CHIPChannelClusterChangeChannelResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                          bool keepAlive = false) :
        CHIPCallbackBridge<CHIPChannelClusterChangeChannelResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::Channel::Commands::ChangeChannelResponse::DecodableType & data);
};

class CHIPContentLauncherClusterLaunchResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPContentLauncherClusterLaunchResponseCallbackType>
{
public:
    CHIPContentLauncherClusterLaunchResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                           bool keepAlive = false) :
        CHIPCallbackBridge<CHIPContentLauncherClusterLaunchResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::ContentLauncher::Commands::LaunchResponse::DecodableType & data);
};

class CHIPDiagnosticLogsClusterRetrieveLogsResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPDiagnosticLogsClusterRetrieveLogsResponseCallbackType>
{
public:
    CHIPDiagnosticLogsClusterRetrieveLogsResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<CHIPDiagnosticLogsClusterRetrieveLogsResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                      keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::DiagnosticLogs::Commands::RetrieveLogsResponse::DecodableType & data);
};

class CHIPDoorLockClusterGetCredentialStatusResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPDoorLockClusterGetCredentialStatusResponseCallbackType>
{
public:
    CHIPDoorLockClusterGetCredentialStatusResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<CHIPDoorLockClusterGetCredentialStatusResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::DoorLock::Commands::GetCredentialStatusResponse::DecodableType & data);
};

class CHIPDoorLockClusterGetUserResponseCallbackBridge : public CHIPCallbackBridge<CHIPDoorLockClusterGetUserResponseCallbackType>
{
public:
    CHIPDoorLockClusterGetUserResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                     bool keepAlive = false) :
        CHIPCallbackBridge<CHIPDoorLockClusterGetUserResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::Clusters::DoorLock::Commands::GetUserResponse::DecodableType & data);
};

class CHIPDoorLockClusterSetCredentialResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPDoorLockClusterSetCredentialResponseCallbackType>
{
public:
    CHIPDoorLockClusterSetCredentialResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                           bool keepAlive = false) :
        CHIPCallbackBridge<CHIPDoorLockClusterSetCredentialResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::DoorLock::Commands::SetCredentialResponse::DecodableType & data);
};

class CHIPGeneralCommissioningClusterArmFailSafeResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPGeneralCommissioningClusterArmFailSafeResponseCallbackType>
{
public:
    CHIPGeneralCommissioningClusterArmFailSafeResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<CHIPGeneralCommissioningClusterArmFailSafeResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                           keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::GeneralCommissioning::Commands::ArmFailSafeResponse::DecodableType & data);
};

class CHIPGeneralCommissioningClusterCommissioningCompleteResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPGeneralCommissioningClusterCommissioningCompleteResponseCallbackType>
{
public:
    CHIPGeneralCommissioningClusterCommissioningCompleteResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<CHIPGeneralCommissioningClusterCommissioningCompleteResponseCallbackType>(queue, handler, action,
                                                                                                     OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::Clusters::GeneralCommissioning::Commands::CommissioningCompleteResponse::DecodableType & data);
};

class CHIPGeneralCommissioningClusterSetRegulatoryConfigResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPGeneralCommissioningClusterSetRegulatoryConfigResponseCallbackType>
{
public:
    CHIPGeneralCommissioningClusterSetRegulatoryConfigResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<CHIPGeneralCommissioningClusterSetRegulatoryConfigResponseCallbackType>(queue, handler, action,
                                                                                                   OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::Clusters::GeneralCommissioning::Commands::SetRegulatoryConfigResponse::DecodableType & data);
};

class CHIPGroupKeyManagementClusterKeySetReadAllIndicesResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPGroupKeyManagementClusterKeySetReadAllIndicesResponseCallbackType>
{
public:
    CHIPGroupKeyManagementClusterKeySetReadAllIndicesResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<CHIPGroupKeyManagementClusterKeySetReadAllIndicesResponseCallbackType>(queue, handler, action,
                                                                                                  OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::Clusters::GroupKeyManagement::Commands::KeySetReadAllIndicesResponse::DecodableType & data);
};

class CHIPGroupKeyManagementClusterKeySetReadResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPGroupKeyManagementClusterKeySetReadResponseCallbackType>
{
public:
    CHIPGroupKeyManagementClusterKeySetReadResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<CHIPGroupKeyManagementClusterKeySetReadResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::GroupKeyManagement::Commands::KeySetReadResponse::DecodableType & data);
};

class CHIPGroupsClusterAddGroupResponseCallbackBridge : public CHIPCallbackBridge<CHIPGroupsClusterAddGroupResponseCallbackType>
{
public:
    CHIPGroupsClusterAddGroupResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                    bool keepAlive = false) :
        CHIPCallbackBridge<CHIPGroupsClusterAddGroupResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::Clusters::Groups::Commands::AddGroupResponse::DecodableType & data);
};

class CHIPGroupsClusterGetGroupMembershipResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPGroupsClusterGetGroupMembershipResponseCallbackType>
{
public:
    CHIPGroupsClusterGetGroupMembershipResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<CHIPGroupsClusterGetGroupMembershipResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::Groups::Commands::GetGroupMembershipResponse::DecodableType & data);
};

class CHIPGroupsClusterRemoveGroupResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPGroupsClusterRemoveGroupResponseCallbackType>
{
public:
    CHIPGroupsClusterRemoveGroupResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                       bool keepAlive = false) :
        CHIPCallbackBridge<CHIPGroupsClusterRemoveGroupResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::Clusters::Groups::Commands::RemoveGroupResponse::DecodableType & data);
};

class CHIPGroupsClusterViewGroupResponseCallbackBridge : public CHIPCallbackBridge<CHIPGroupsClusterViewGroupResponseCallbackType>
{
public:
    CHIPGroupsClusterViewGroupResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                     bool keepAlive = false) :
        CHIPCallbackBridge<CHIPGroupsClusterViewGroupResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::Clusters::Groups::Commands::ViewGroupResponse::DecodableType & data);
};

class CHIPIdentifyClusterIdentifyQueryResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPIdentifyClusterIdentifyQueryResponseCallbackType>
{
public:
    CHIPIdentifyClusterIdentifyQueryResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                           bool keepAlive = false) :
        CHIPCallbackBridge<CHIPIdentifyClusterIdentifyQueryResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::Identify::Commands::IdentifyQueryResponse::DecodableType & data);
};

class CHIPKeypadInputClusterSendKeyResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPKeypadInputClusterSendKeyResponseCallbackType>
{
public:
    CHIPKeypadInputClusterSendKeyResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                        bool keepAlive = false) :
        CHIPCallbackBridge<CHIPKeypadInputClusterSendKeyResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::KeypadInput::Commands::SendKeyResponse::DecodableType & data);
};

class CHIPMediaPlaybackClusterPlaybackResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPMediaPlaybackClusterPlaybackResponseCallbackType>
{
public:
    CHIPMediaPlaybackClusterPlaybackResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                           bool keepAlive = false) :
        CHIPCallbackBridge<CHIPMediaPlaybackClusterPlaybackResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::MediaPlayback::Commands::PlaybackResponse::DecodableType & data);
};

class CHIPNetworkCommissioningClusterConnectNetworkResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPNetworkCommissioningClusterConnectNetworkResponseCallbackType>
{
public:
    CHIPNetworkCommissioningClusterConnectNetworkResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<CHIPNetworkCommissioningClusterConnectNetworkResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                              keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::Clusters::NetworkCommissioning::Commands::ConnectNetworkResponse::DecodableType & data);
};

class CHIPNetworkCommissioningClusterNetworkConfigResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPNetworkCommissioningClusterNetworkConfigResponseCallbackType>
{
public:
    CHIPNetworkCommissioningClusterNetworkConfigResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<CHIPNetworkCommissioningClusterNetworkConfigResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                             keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::NetworkCommissioning::Commands::NetworkConfigResponse::DecodableType & data);
};

class CHIPNetworkCommissioningClusterScanNetworksResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPNetworkCommissioningClusterScanNetworksResponseCallbackType>
{
public:
    CHIPNetworkCommissioningClusterScanNetworksResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<CHIPNetworkCommissioningClusterScanNetworksResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                            keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::NetworkCommissioning::Commands::ScanNetworksResponse::DecodableType & data);
};

class CHIPOtaSoftwareUpdateProviderClusterApplyUpdateResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPOtaSoftwareUpdateProviderClusterApplyUpdateResponseCallbackType>
{
public:
    CHIPOtaSoftwareUpdateProviderClusterApplyUpdateResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<CHIPOtaSoftwareUpdateProviderClusterApplyUpdateResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                                keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::ApplyUpdateResponse::DecodableType & data);
};

class CHIPOtaSoftwareUpdateProviderClusterQueryImageResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPOtaSoftwareUpdateProviderClusterQueryImageResponseCallbackType>
{
public:
    CHIPOtaSoftwareUpdateProviderClusterQueryImageResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<CHIPOtaSoftwareUpdateProviderClusterQueryImageResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                               keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::QueryImageResponse::DecodableType & data);
};

class CHIPOperationalCredentialsClusterAttestationResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPOperationalCredentialsClusterAttestationResponseCallbackType>
{
public:
    CHIPOperationalCredentialsClusterAttestationResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<CHIPOperationalCredentialsClusterAttestationResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                             keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::OperationalCredentials::Commands::AttestationResponse::DecodableType & data);
};

class CHIPOperationalCredentialsClusterCertificateChainResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPOperationalCredentialsClusterCertificateChainResponseCallbackType>
{
public:
    CHIPOperationalCredentialsClusterCertificateChainResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<CHIPOperationalCredentialsClusterCertificateChainResponseCallbackType>(queue, handler, action,
                                                                                                  OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::Clusters::OperationalCredentials::Commands::CertificateChainResponse::DecodableType & data);
};

class CHIPOperationalCredentialsClusterNOCResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPOperationalCredentialsClusterNOCResponseCallbackType>
{
public:
    CHIPOperationalCredentialsClusterNOCResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<CHIPOperationalCredentialsClusterNOCResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                     keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::OperationalCredentials::Commands::NOCResponse::DecodableType & data);
};

class CHIPOperationalCredentialsClusterOpCSRResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPOperationalCredentialsClusterOpCSRResponseCallbackType>
{
public:
    CHIPOperationalCredentialsClusterOpCSRResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<CHIPOperationalCredentialsClusterOpCSRResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::OperationalCredentials::Commands::OpCSRResponse::DecodableType & data);
};

class CHIPScenesClusterAddSceneResponseCallbackBridge : public CHIPCallbackBridge<CHIPScenesClusterAddSceneResponseCallbackType>
{
public:
    CHIPScenesClusterAddSceneResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                    bool keepAlive = false) :
        CHIPCallbackBridge<CHIPScenesClusterAddSceneResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::Clusters::Scenes::Commands::AddSceneResponse::DecodableType & data);
};

class CHIPScenesClusterGetSceneMembershipResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPScenesClusterGetSceneMembershipResponseCallbackType>
{
public:
    CHIPScenesClusterGetSceneMembershipResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<CHIPScenesClusterGetSceneMembershipResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::Scenes::Commands::GetSceneMembershipResponse::DecodableType & data);
};

class CHIPScenesClusterRemoveAllScenesResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPScenesClusterRemoveAllScenesResponseCallbackType>
{
public:
    CHIPScenesClusterRemoveAllScenesResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                           bool keepAlive = false) :
        CHIPCallbackBridge<CHIPScenesClusterRemoveAllScenesResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::Scenes::Commands::RemoveAllScenesResponse::DecodableType & data);
};

class CHIPScenesClusterRemoveSceneResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPScenesClusterRemoveSceneResponseCallbackType>
{
public:
    CHIPScenesClusterRemoveSceneResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                       bool keepAlive = false) :
        CHIPCallbackBridge<CHIPScenesClusterRemoveSceneResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::Clusters::Scenes::Commands::RemoveSceneResponse::DecodableType & data);
};

class CHIPScenesClusterStoreSceneResponseCallbackBridge : public CHIPCallbackBridge<CHIPScenesClusterStoreSceneResponseCallbackType>
{
public:
    CHIPScenesClusterStoreSceneResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                      bool keepAlive = false) :
        CHIPCallbackBridge<CHIPScenesClusterStoreSceneResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::Clusters::Scenes::Commands::StoreSceneResponse::DecodableType & data);
};

class CHIPScenesClusterViewSceneResponseCallbackBridge : public CHIPCallbackBridge<CHIPScenesClusterViewSceneResponseCallbackType>
{
public:
    CHIPScenesClusterViewSceneResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                     bool keepAlive = false) :
        CHIPCallbackBridge<CHIPScenesClusterViewSceneResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::Clusters::Scenes::Commands::ViewSceneResponse::DecodableType & data);
};

class CHIPTargetNavigatorClusterNavigateTargetResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPTargetNavigatorClusterNavigateTargetResponseCallbackType>
{
public:
    CHIPTargetNavigatorClusterNavigateTargetResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<CHIPTargetNavigatorClusterNavigateTargetResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                         keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::TargetNavigator::Commands::NavigateTargetResponse::DecodableType & data);
};

class CHIPTestClusterClusterBooleanResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPTestClusterClusterBooleanResponseCallbackType>
{
public:
    CHIPTestClusterClusterBooleanResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                        bool keepAlive = false) :
        CHIPCallbackBridge<CHIPTestClusterClusterBooleanResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::TestCluster::Commands::BooleanResponse::DecodableType & data);
};

class CHIPTestClusterClusterSimpleStructResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPTestClusterClusterSimpleStructResponseCallbackType>
{
public:
    CHIPTestClusterClusterSimpleStructResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                             CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<CHIPTestClusterClusterSimpleStructResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                   keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::TestCluster::Commands::SimpleStructResponse::DecodableType & data);
};

class CHIPTestClusterClusterTestAddArgumentsResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPTestClusterClusterTestAddArgumentsResponseCallbackType>
{
public:
    CHIPTestClusterClusterTestAddArgumentsResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<CHIPTestClusterClusterTestAddArgumentsResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::TestCluster::Commands::TestAddArgumentsResponse::DecodableType & data);
};

class CHIPTestClusterClusterTestEnumsResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPTestClusterClusterTestEnumsResponseCallbackType>
{
public:
    CHIPTestClusterClusterTestEnumsResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                          bool keepAlive = false) :
        CHIPCallbackBridge<CHIPTestClusterClusterTestEnumsResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::TestCluster::Commands::TestEnumsResponse::DecodableType & data);
};

class CHIPTestClusterClusterTestListInt8UReverseResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPTestClusterClusterTestListInt8UReverseResponseCallbackType>
{
public:
    CHIPTestClusterClusterTestListInt8UReverseResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<CHIPTestClusterClusterTestListInt8UReverseResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                           keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::TestCluster::Commands::TestListInt8UReverseResponse::DecodableType & data);
};

class CHIPTestClusterClusterTestNullableOptionalResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPTestClusterClusterTestNullableOptionalResponseCallbackType>
{
public:
    CHIPTestClusterClusterTestNullableOptionalResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<CHIPTestClusterClusterTestNullableOptionalResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                           keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::TestCluster::Commands::TestNullableOptionalResponse::DecodableType & data);
};

class CHIPTestClusterClusterTestSpecificResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPTestClusterClusterTestSpecificResponseCallbackType>
{
public:
    CHIPTestClusterClusterTestSpecificResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                             CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<CHIPTestClusterClusterTestSpecificResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                   keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::TestCluster::Commands::TestSpecificResponse::DecodableType & data);
};

class CHIPThermostatClusterGetRelayStatusLogResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPThermostatClusterGetRelayStatusLogResponseCallbackType>
{
public:
    CHIPThermostatClusterGetRelayStatusLogResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<CHIPThermostatClusterGetRelayStatusLogResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::Thermostat::Commands::GetRelayStatusLogResponse::DecodableType & data);
};

class CHIPThermostatClusterGetWeeklyScheduleResponseCallbackBridge
    : public CHIPCallbackBridge<CHIPThermostatClusterGetWeeklyScheduleResponseCallbackType>
{
public:
    CHIPThermostatClusterGetWeeklyScheduleResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<CHIPThermostatClusterGetWeeklyScheduleResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::Thermostat::Commands::GetWeeklyScheduleResponse::DecodableType & data);
};

class CHIPIdentifyClusterIdentifyEffectIdentifierAttributeCallbackBridge
    : public CHIPCallbackBridge<IdentifyClusterIdentifyEffectIdentifierAttributeCallback>
{
public:
    CHIPIdentifyClusterIdentifyEffectIdentifierAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<IdentifyClusterIdentifyEffectIdentifierAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                     keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::Identify::IdentifyEffectIdentifier value);
};

class CHIPIdentifyClusterIdentifyEffectIdentifierAttributeCallbackSubscriptionBridge
    : public CHIPIdentifyClusterIdentifyEffectIdentifierAttributeCallbackBridge
{
public:
    CHIPIdentifyClusterIdentifyEffectIdentifierAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPIdentifyClusterIdentifyEffectIdentifierAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableIdentifyClusterIdentifyEffectIdentifierAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableIdentifyClusterIdentifyEffectIdentifierAttributeCallback>
{
public:
    CHIPNullableIdentifyClusterIdentifyEffectIdentifierAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableIdentifyClusterIdentifyEffectIdentifierAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                             keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::Identify::IdentifyEffectIdentifier> & value);
};

class CHIPNullableIdentifyClusterIdentifyEffectIdentifierAttributeCallbackSubscriptionBridge
    : public CHIPNullableIdentifyClusterIdentifyEffectIdentifierAttributeCallbackBridge
{
public:
    CHIPNullableIdentifyClusterIdentifyEffectIdentifierAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableIdentifyClusterIdentifyEffectIdentifierAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPIdentifyClusterIdentifyEffectVariantAttributeCallbackBridge
    : public CHIPCallbackBridge<IdentifyClusterIdentifyEffectVariantAttributeCallback>
{
public:
    CHIPIdentifyClusterIdentifyEffectVariantAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<IdentifyClusterIdentifyEffectVariantAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::Identify::IdentifyEffectVariant value);
};

class CHIPIdentifyClusterIdentifyEffectVariantAttributeCallbackSubscriptionBridge
    : public CHIPIdentifyClusterIdentifyEffectVariantAttributeCallbackBridge
{
public:
    CHIPIdentifyClusterIdentifyEffectVariantAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                CHIPActionBlock action,
                                                                                SubscriptionEstablishedHandler establishedHandler) :
        CHIPIdentifyClusterIdentifyEffectVariantAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableIdentifyClusterIdentifyEffectVariantAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableIdentifyClusterIdentifyEffectVariantAttributeCallback>
{
public:
    CHIPNullableIdentifyClusterIdentifyEffectVariantAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableIdentifyClusterIdentifyEffectVariantAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                          keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::Identify::IdentifyEffectVariant> & value);
};

class CHIPNullableIdentifyClusterIdentifyEffectVariantAttributeCallbackSubscriptionBridge
    : public CHIPNullableIdentifyClusterIdentifyEffectVariantAttributeCallbackBridge
{
public:
    CHIPNullableIdentifyClusterIdentifyEffectVariantAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableIdentifyClusterIdentifyEffectVariantAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPIdentifyClusterIdentifyIdentifyTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<IdentifyClusterIdentifyIdentifyTypeAttributeCallback>
{
public:
    CHIPIdentifyClusterIdentifyIdentifyTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<IdentifyClusterIdentifyIdentifyTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::Identify::IdentifyIdentifyType value);
};

class CHIPIdentifyClusterIdentifyIdentifyTypeAttributeCallbackSubscriptionBridge
    : public CHIPIdentifyClusterIdentifyIdentifyTypeAttributeCallbackBridge
{
public:
    CHIPIdentifyClusterIdentifyIdentifyTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               CHIPActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        CHIPIdentifyClusterIdentifyIdentifyTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableIdentifyClusterIdentifyIdentifyTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableIdentifyClusterIdentifyIdentifyTypeAttributeCallback>
{
public:
    CHIPNullableIdentifyClusterIdentifyIdentifyTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableIdentifyClusterIdentifyIdentifyTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                         keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::Identify::IdentifyIdentifyType> & value);
};

class CHIPNullableIdentifyClusterIdentifyIdentifyTypeAttributeCallbackSubscriptionBridge
    : public CHIPNullableIdentifyClusterIdentifyIdentifyTypeAttributeCallbackBridge
{
public:
    CHIPNullableIdentifyClusterIdentifyIdentifyTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableIdentifyClusterIdentifyIdentifyTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPOnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallbackBridge
    : public CHIPCallbackBridge<OnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallback>
{
public:
    CHIPOnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<OnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                         keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::OnOff::OnOffDelayedAllOffEffectVariant value);
};

class CHIPOnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallbackSubscriptionBridge
    : public CHIPOnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallbackBridge
{
public:
    CHIPOnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPOnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableOnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableOnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallback>
{
public:
    CHIPNullableOnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                   CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableOnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallback>(queue, handler, action,
                                                                                                 OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::OnOff::OnOffDelayedAllOffEffectVariant> & value);
};

class CHIPNullableOnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallbackSubscriptionBridge
    : public CHIPNullableOnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallbackBridge
{
public:
    CHIPNullableOnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableOnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPOnOffClusterOnOffDyingLightEffectVariantAttributeCallbackBridge
    : public CHIPCallbackBridge<OnOffClusterOnOffDyingLightEffectVariantAttributeCallback>
{
public:
    CHIPOnOffClusterOnOffDyingLightEffectVariantAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<OnOffClusterOnOffDyingLightEffectVariantAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                      keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::OnOff::OnOffDyingLightEffectVariant value);
};

class CHIPOnOffClusterOnOffDyingLightEffectVariantAttributeCallbackSubscriptionBridge
    : public CHIPOnOffClusterOnOffDyingLightEffectVariantAttributeCallbackBridge
{
public:
    CHIPOnOffClusterOnOffDyingLightEffectVariantAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPOnOffClusterOnOffDyingLightEffectVariantAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableOnOffClusterOnOffDyingLightEffectVariantAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableOnOffClusterOnOffDyingLightEffectVariantAttributeCallback>
{
public:
    CHIPNullableOnOffClusterOnOffDyingLightEffectVariantAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableOnOffClusterOnOffDyingLightEffectVariantAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                              keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::OnOff::OnOffDyingLightEffectVariant> & value);
};

class CHIPNullableOnOffClusterOnOffDyingLightEffectVariantAttributeCallbackSubscriptionBridge
    : public CHIPNullableOnOffClusterOnOffDyingLightEffectVariantAttributeCallbackBridge
{
public:
    CHIPNullableOnOffClusterOnOffDyingLightEffectVariantAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableOnOffClusterOnOffDyingLightEffectVariantAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPOnOffClusterOnOffEffectIdentifierAttributeCallbackBridge
    : public CHIPCallbackBridge<OnOffClusterOnOffEffectIdentifierAttributeCallback>
{
public:
    CHIPOnOffClusterOnOffEffectIdentifierAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<OnOffClusterOnOffEffectIdentifierAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::OnOff::OnOffEffectIdentifier value);
};

class CHIPOnOffClusterOnOffEffectIdentifierAttributeCallbackSubscriptionBridge
    : public CHIPOnOffClusterOnOffEffectIdentifierAttributeCallbackBridge
{
public:
    CHIPOnOffClusterOnOffEffectIdentifierAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             CHIPActionBlock action,
                                                                             SubscriptionEstablishedHandler establishedHandler) :
        CHIPOnOffClusterOnOffEffectIdentifierAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableOnOffClusterOnOffEffectIdentifierAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableOnOffClusterOnOffEffectIdentifierAttributeCallback>
{
public:
    CHIPNullableOnOffClusterOnOffEffectIdentifierAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableOnOffClusterOnOffEffectIdentifierAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::OnOff::OnOffEffectIdentifier> & value);
};

class CHIPNullableOnOffClusterOnOffEffectIdentifierAttributeCallbackSubscriptionBridge
    : public CHIPNullableOnOffClusterOnOffEffectIdentifierAttributeCallbackBridge
{
public:
    CHIPNullableOnOffClusterOnOffEffectIdentifierAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableOnOffClusterOnOffEffectIdentifierAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPLevelControlClusterMoveModeAttributeCallbackBridge
    : public CHIPCallbackBridge<LevelControlClusterMoveModeAttributeCallback>
{
public:
    CHIPLevelControlClusterMoveModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                           bool keepAlive = false) :
        CHIPCallbackBridge<LevelControlClusterMoveModeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::LevelControl::MoveMode value);
};

class CHIPLevelControlClusterMoveModeAttributeCallbackSubscriptionBridge
    : public CHIPLevelControlClusterMoveModeAttributeCallbackBridge
{
public:
    CHIPLevelControlClusterMoveModeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       CHIPActionBlock action,
                                                                       SubscriptionEstablishedHandler establishedHandler) :
        CHIPLevelControlClusterMoveModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableLevelControlClusterMoveModeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableLevelControlClusterMoveModeAttributeCallback>
{
public:
    CHIPNullableLevelControlClusterMoveModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableLevelControlClusterMoveModeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::LevelControl::MoveMode> & value);
};

class CHIPNullableLevelControlClusterMoveModeAttributeCallbackSubscriptionBridge
    : public CHIPNullableLevelControlClusterMoveModeAttributeCallbackBridge
{
public:
    CHIPNullableLevelControlClusterMoveModeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               CHIPActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableLevelControlClusterMoveModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPLevelControlClusterStepModeAttributeCallbackBridge
    : public CHIPCallbackBridge<LevelControlClusterStepModeAttributeCallback>
{
public:
    CHIPLevelControlClusterStepModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                           bool keepAlive = false) :
        CHIPCallbackBridge<LevelControlClusterStepModeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::LevelControl::StepMode value);
};

class CHIPLevelControlClusterStepModeAttributeCallbackSubscriptionBridge
    : public CHIPLevelControlClusterStepModeAttributeCallbackBridge
{
public:
    CHIPLevelControlClusterStepModeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       CHIPActionBlock action,
                                                                       SubscriptionEstablishedHandler establishedHandler) :
        CHIPLevelControlClusterStepModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableLevelControlClusterStepModeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableLevelControlClusterStepModeAttributeCallback>
{
public:
    CHIPNullableLevelControlClusterStepModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableLevelControlClusterStepModeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::LevelControl::StepMode> & value);
};

class CHIPNullableLevelControlClusterStepModeAttributeCallbackSubscriptionBridge
    : public CHIPNullableLevelControlClusterStepModeAttributeCallbackBridge
{
public:
    CHIPNullableLevelControlClusterStepModeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               CHIPActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableLevelControlClusterStepModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPApplianceControlClusterApplianceStatusAttributeCallbackBridge
    : public CHIPCallbackBridge<ApplianceControlClusterApplianceStatusAttributeCallback>
{
public:
    CHIPApplianceControlClusterApplianceStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<ApplianceControlClusterApplianceStatusAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ApplianceControl::ApplianceStatus value);
};

class CHIPApplianceControlClusterApplianceStatusAttributeCallbackSubscriptionBridge
    : public CHIPApplianceControlClusterApplianceStatusAttributeCallbackBridge
{
public:
    CHIPApplianceControlClusterApplianceStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPApplianceControlClusterApplianceStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableApplianceControlClusterApplianceStatusAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableApplianceControlClusterApplianceStatusAttributeCallback>
{
public:
    CHIPNullableApplianceControlClusterApplianceStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableApplianceControlClusterApplianceStatusAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                            keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::ApplianceControl::ApplianceStatus> & value);
};

class CHIPNullableApplianceControlClusterApplianceStatusAttributeCallbackSubscriptionBridge
    : public CHIPNullableApplianceControlClusterApplianceStatusAttributeCallbackBridge
{
public:
    CHIPNullableApplianceControlClusterApplianceStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableApplianceControlClusterApplianceStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPApplianceControlClusterCommandIdentificationAttributeCallbackBridge
    : public CHIPCallbackBridge<ApplianceControlClusterCommandIdentificationAttributeCallback>
{
public:
    CHIPApplianceControlClusterCommandIdentificationAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<ApplianceControlClusterCommandIdentificationAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                          keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ApplianceControl::CommandIdentification value);
};

class CHIPApplianceControlClusterCommandIdentificationAttributeCallbackSubscriptionBridge
    : public CHIPApplianceControlClusterCommandIdentificationAttributeCallbackBridge
{
public:
    CHIPApplianceControlClusterCommandIdentificationAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPApplianceControlClusterCommandIdentificationAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableApplianceControlClusterCommandIdentificationAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableApplianceControlClusterCommandIdentificationAttributeCallback>
{
public:
    CHIPNullableApplianceControlClusterCommandIdentificationAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                    CHIPActionBlock action,
                                                                                    bool keepAlive = false) :
        CHIPCallbackBridge<NullableApplianceControlClusterCommandIdentificationAttributeCallback>(queue, handler, action,
                                                                                                  OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::ApplianceControl::CommandIdentification> & value);
};

class CHIPNullableApplianceControlClusterCommandIdentificationAttributeCallbackSubscriptionBridge
    : public CHIPNullableApplianceControlClusterCommandIdentificationAttributeCallbackBridge
{
public:
    CHIPNullableApplianceControlClusterCommandIdentificationAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableApplianceControlClusterCommandIdentificationAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPApplianceControlClusterWarningEventAttributeCallbackBridge
    : public CHIPCallbackBridge<ApplianceControlClusterWarningEventAttributeCallback>
{
public:
    CHIPApplianceControlClusterWarningEventAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<ApplianceControlClusterWarningEventAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ApplianceControl::WarningEvent value);
};

class CHIPApplianceControlClusterWarningEventAttributeCallbackSubscriptionBridge
    : public CHIPApplianceControlClusterWarningEventAttributeCallbackBridge
{
public:
    CHIPApplianceControlClusterWarningEventAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               CHIPActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        CHIPApplianceControlClusterWarningEventAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableApplianceControlClusterWarningEventAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableApplianceControlClusterWarningEventAttributeCallback>
{
public:
    CHIPNullableApplianceControlClusterWarningEventAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableApplianceControlClusterWarningEventAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                         keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::ApplianceControl::WarningEvent> & value);
};

class CHIPNullableApplianceControlClusterWarningEventAttributeCallbackSubscriptionBridge
    : public CHIPNullableApplianceControlClusterWarningEventAttributeCallbackBridge
{
public:
    CHIPNullableApplianceControlClusterWarningEventAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableApplianceControlClusterWarningEventAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPAccessControlClusterAuthModeAttributeCallbackBridge
    : public CHIPCallbackBridge<AccessControlClusterAuthModeAttributeCallback>
{
public:
    CHIPAccessControlClusterAuthModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                            bool keepAlive = false) :
        CHIPCallbackBridge<AccessControlClusterAuthModeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::AccessControl::AuthMode value);
};

class CHIPAccessControlClusterAuthModeAttributeCallbackSubscriptionBridge
    : public CHIPAccessControlClusterAuthModeAttributeCallbackBridge
{
public:
    CHIPAccessControlClusterAuthModeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        CHIPActionBlock action,
                                                                        SubscriptionEstablishedHandler establishedHandler) :
        CHIPAccessControlClusterAuthModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableAccessControlClusterAuthModeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableAccessControlClusterAuthModeAttributeCallback>
{
public:
    CHIPNullableAccessControlClusterAuthModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableAccessControlClusterAuthModeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::AccessControl::AuthMode> & value);
};

class CHIPNullableAccessControlClusterAuthModeAttributeCallbackSubscriptionBridge
    : public CHIPNullableAccessControlClusterAuthModeAttributeCallbackBridge
{
public:
    CHIPNullableAccessControlClusterAuthModeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                CHIPActionBlock action,
                                                                                SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableAccessControlClusterAuthModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPAccessControlClusterPrivilegeAttributeCallbackBridge
    : public CHIPCallbackBridge<AccessControlClusterPrivilegeAttributeCallback>
{
public:
    CHIPAccessControlClusterPrivilegeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                             CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<AccessControlClusterPrivilegeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::AccessControl::Privilege value);
};

class CHIPAccessControlClusterPrivilegeAttributeCallbackSubscriptionBridge
    : public CHIPAccessControlClusterPrivilegeAttributeCallbackBridge
{
public:
    CHIPAccessControlClusterPrivilegeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         CHIPActionBlock action,
                                                                         SubscriptionEstablishedHandler establishedHandler) :
        CHIPAccessControlClusterPrivilegeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableAccessControlClusterPrivilegeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableAccessControlClusterPrivilegeAttributeCallback>
{
public:
    CHIPNullableAccessControlClusterPrivilegeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableAccessControlClusterPrivilegeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                   keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::AccessControl::Privilege> & value);
};

class CHIPNullableAccessControlClusterPrivilegeAttributeCallbackSubscriptionBridge
    : public CHIPNullableAccessControlClusterPrivilegeAttributeCallbackBridge
{
public:
    CHIPNullableAccessControlClusterPrivilegeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableAccessControlClusterPrivilegeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPBridgedActionsClusterActionErrorEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<BridgedActionsClusterActionErrorEnumAttributeCallback>
{
public:
    CHIPBridgedActionsClusterActionErrorEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<BridgedActionsClusterActionErrorEnumAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::BridgedActions::ActionErrorEnum value);
};

class CHIPBridgedActionsClusterActionErrorEnumAttributeCallbackSubscriptionBridge
    : public CHIPBridgedActionsClusterActionErrorEnumAttributeCallbackBridge
{
public:
    CHIPBridgedActionsClusterActionErrorEnumAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                CHIPActionBlock action,
                                                                                SubscriptionEstablishedHandler establishedHandler) :
        CHIPBridgedActionsClusterActionErrorEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableBridgedActionsClusterActionErrorEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableBridgedActionsClusterActionErrorEnumAttributeCallback>
{
public:
    CHIPNullableBridgedActionsClusterActionErrorEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableBridgedActionsClusterActionErrorEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                          keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::BridgedActions::ActionErrorEnum> & value);
};

class CHIPNullableBridgedActionsClusterActionErrorEnumAttributeCallbackSubscriptionBridge
    : public CHIPNullableBridgedActionsClusterActionErrorEnumAttributeCallbackBridge
{
public:
    CHIPNullableBridgedActionsClusterActionErrorEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableBridgedActionsClusterActionErrorEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPBridgedActionsClusterActionStateEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<BridgedActionsClusterActionStateEnumAttributeCallback>
{
public:
    CHIPBridgedActionsClusterActionStateEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<BridgedActionsClusterActionStateEnumAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::BridgedActions::ActionStateEnum value);
};

class CHIPBridgedActionsClusterActionStateEnumAttributeCallbackSubscriptionBridge
    : public CHIPBridgedActionsClusterActionStateEnumAttributeCallbackBridge
{
public:
    CHIPBridgedActionsClusterActionStateEnumAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                CHIPActionBlock action,
                                                                                SubscriptionEstablishedHandler establishedHandler) :
        CHIPBridgedActionsClusterActionStateEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableBridgedActionsClusterActionStateEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableBridgedActionsClusterActionStateEnumAttributeCallback>
{
public:
    CHIPNullableBridgedActionsClusterActionStateEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableBridgedActionsClusterActionStateEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                          keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::BridgedActions::ActionStateEnum> & value);
};

class CHIPNullableBridgedActionsClusterActionStateEnumAttributeCallbackSubscriptionBridge
    : public CHIPNullableBridgedActionsClusterActionStateEnumAttributeCallbackBridge
{
public:
    CHIPNullableBridgedActionsClusterActionStateEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableBridgedActionsClusterActionStateEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPBridgedActionsClusterActionTypeEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<BridgedActionsClusterActionTypeEnumAttributeCallback>
{
public:
    CHIPBridgedActionsClusterActionTypeEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<BridgedActionsClusterActionTypeEnumAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::BridgedActions::ActionTypeEnum value);
};

class CHIPBridgedActionsClusterActionTypeEnumAttributeCallbackSubscriptionBridge
    : public CHIPBridgedActionsClusterActionTypeEnumAttributeCallbackBridge
{
public:
    CHIPBridgedActionsClusterActionTypeEnumAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               CHIPActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        CHIPBridgedActionsClusterActionTypeEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableBridgedActionsClusterActionTypeEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableBridgedActionsClusterActionTypeEnumAttributeCallback>
{
public:
    CHIPNullableBridgedActionsClusterActionTypeEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableBridgedActionsClusterActionTypeEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                         keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::BridgedActions::ActionTypeEnum> & value);
};

class CHIPNullableBridgedActionsClusterActionTypeEnumAttributeCallbackSubscriptionBridge
    : public CHIPNullableBridgedActionsClusterActionTypeEnumAttributeCallbackBridge
{
public:
    CHIPNullableBridgedActionsClusterActionTypeEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableBridgedActionsClusterActionTypeEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPBridgedActionsClusterEndpointListTypeEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<BridgedActionsClusterEndpointListTypeEnumAttributeCallback>
{
public:
    CHIPBridgedActionsClusterEndpointListTypeEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<BridgedActionsClusterEndpointListTypeEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::BridgedActions::EndpointListTypeEnum value);
};

class CHIPBridgedActionsClusterEndpointListTypeEnumAttributeCallbackSubscriptionBridge
    : public CHIPBridgedActionsClusterEndpointListTypeEnumAttributeCallbackBridge
{
public:
    CHIPBridgedActionsClusterEndpointListTypeEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPBridgedActionsClusterEndpointListTypeEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableBridgedActionsClusterEndpointListTypeEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableBridgedActionsClusterEndpointListTypeEnumAttributeCallback>
{
public:
    CHIPNullableBridgedActionsClusterEndpointListTypeEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                 CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableBridgedActionsClusterEndpointListTypeEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                               keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::BridgedActions::EndpointListTypeEnum> & value);
};

class CHIPNullableBridgedActionsClusterEndpointListTypeEnumAttributeCallbackSubscriptionBridge
    : public CHIPNullableBridgedActionsClusterEndpointListTypeEnumAttributeCallbackBridge
{
public:
    CHIPNullableBridgedActionsClusterEndpointListTypeEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableBridgedActionsClusterEndpointListTypeEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPOtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallbackBridge
    : public CHIPCallbackBridge<OtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallback>
{
public:
    CHIPOtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                    CHIPActionBlock action,
                                                                                    bool keepAlive = false) :
        CHIPCallbackBridge<OtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallback>(queue, handler, action,
                                                                                                  OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::OtaSoftwareUpdateProvider::OTAApplyUpdateAction value);
};

class CHIPOtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallbackSubscriptionBridge
    : public CHIPOtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallbackBridge
{
public:
    CHIPOtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPOtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableOtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableOtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallback>
{
public:
    CHIPNullableOtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                            ResponseHandler handler,
                                                                                            CHIPActionBlock action,
                                                                                            bool keepAlive = false) :
        CHIPCallbackBridge<NullableOtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallback>(queue, handler, action,
                                                                                                          OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::OtaSoftwareUpdateProvider::OTAApplyUpdateAction> & value);
};

class CHIPNullableOtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallbackSubscriptionBridge
    : public CHIPNullableOtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallbackBridge
{
public:
    CHIPNullableOtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableOtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPOtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallbackBridge
    : public CHIPCallbackBridge<OtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallback>
{
public:
    CHIPOtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                   CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<OtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallback>(queue, handler, action,
                                                                                                 OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::OtaSoftwareUpdateProvider::OTADownloadProtocol value);
};

class CHIPOtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallbackSubscriptionBridge
    : public CHIPOtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallbackBridge
{
public:
    CHIPOtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPOtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableOtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableOtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallback>
{
public:
    CHIPNullableOtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                           ResponseHandler handler,
                                                                                           CHIPActionBlock action,
                                                                                           bool keepAlive = false) :
        CHIPCallbackBridge<NullableOtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallback>(queue, handler, action,
                                                                                                         OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::OtaSoftwareUpdateProvider::OTADownloadProtocol> & value);
};

class CHIPNullableOtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallbackSubscriptionBridge
    : public CHIPNullableOtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallbackBridge
{
public:
    CHIPNullableOtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableOtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPOtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallbackBridge
    : public CHIPCallbackBridge<OtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallback>
{
public:
    CHIPOtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<OtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                            keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::OtaSoftwareUpdateProvider::OTAQueryStatus value);
};

class CHIPOtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallbackSubscriptionBridge
    : public CHIPOtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallbackBridge
{
public:
    CHIPOtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPOtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableOtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableOtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallback>
{
public:
    CHIPNullableOtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                      ResponseHandler handler,
                                                                                      CHIPActionBlock action,
                                                                                      bool keepAlive = false) :
        CHIPCallbackBridge<NullableOtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallback>(queue, handler, action,
                                                                                                    OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::OtaSoftwareUpdateProvider::OTAQueryStatus> & value);
};

class CHIPNullableOtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallbackSubscriptionBridge
    : public CHIPNullableOtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallbackBridge
{
public:
    CHIPNullableOtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableOtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPOtaSoftwareUpdateRequestorClusterChangeReasonEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<OtaSoftwareUpdateRequestorClusterChangeReasonEnumAttributeCallback>
{
public:
    CHIPOtaSoftwareUpdateRequestorClusterChangeReasonEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                 CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<OtaSoftwareUpdateRequestorClusterChangeReasonEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                               keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::OtaSoftwareUpdateRequestor::ChangeReasonEnum value);
};

class CHIPOtaSoftwareUpdateRequestorClusterChangeReasonEnumAttributeCallbackSubscriptionBridge
    : public CHIPOtaSoftwareUpdateRequestorClusterChangeReasonEnumAttributeCallbackBridge
{
public:
    CHIPOtaSoftwareUpdateRequestorClusterChangeReasonEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPOtaSoftwareUpdateRequestorClusterChangeReasonEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableOtaSoftwareUpdateRequestorClusterChangeReasonEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableOtaSoftwareUpdateRequestorClusterChangeReasonEnumAttributeCallback>
{
public:
    CHIPNullableOtaSoftwareUpdateRequestorClusterChangeReasonEnumAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                         ResponseHandler handler,
                                                                                         CHIPActionBlock action,
                                                                                         bool keepAlive = false) :
        CHIPCallbackBridge<NullableOtaSoftwareUpdateRequestorClusterChangeReasonEnumAttributeCallback>(queue, handler, action,
                                                                                                       OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::OtaSoftwareUpdateRequestor::ChangeReasonEnum> & value);
};

class CHIPNullableOtaSoftwareUpdateRequestorClusterChangeReasonEnumAttributeCallbackSubscriptionBridge
    : public CHIPNullableOtaSoftwareUpdateRequestorClusterChangeReasonEnumAttributeCallbackBridge
{
public:
    CHIPNullableOtaSoftwareUpdateRequestorClusterChangeReasonEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableOtaSoftwareUpdateRequestorClusterChangeReasonEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPOtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallbackBridge
    : public CHIPCallbackBridge<OtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallback>
{
public:
    CHIPOtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                      ResponseHandler handler,
                                                                                      CHIPActionBlock action,
                                                                                      bool keepAlive = false) :
        CHIPCallbackBridge<OtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallback>(queue, handler, action,
                                                                                                    OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::OtaSoftwareUpdateRequestor::OTAAnnouncementReason value);
};

class CHIPOtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallbackSubscriptionBridge
    : public CHIPOtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallbackBridge
{
public:
    CHIPOtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPOtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableOtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableOtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallback>
{
public:
    CHIPNullableOtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                              ResponseHandler handler,
                                                                                              CHIPActionBlock action,
                                                                                              bool keepAlive = false) :
        CHIPCallbackBridge<NullableOtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallback>(
            queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::Nullable<chip::app::Clusters::OtaSoftwareUpdateRequestor::OTAAnnouncementReason> & value);
};

class CHIPNullableOtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallbackSubscriptionBridge
    : public CHIPNullableOtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallbackBridge
{
public:
    CHIPNullableOtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableOtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPOtaSoftwareUpdateRequestorClusterUpdateStateEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<OtaSoftwareUpdateRequestorClusterUpdateStateEnumAttributeCallback>
{
public:
    CHIPOtaSoftwareUpdateRequestorClusterUpdateStateEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<OtaSoftwareUpdateRequestorClusterUpdateStateEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                              keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::OtaSoftwareUpdateRequestor::UpdateStateEnum value);
};

class CHIPOtaSoftwareUpdateRequestorClusterUpdateStateEnumAttributeCallbackSubscriptionBridge
    : public CHIPOtaSoftwareUpdateRequestorClusterUpdateStateEnumAttributeCallbackBridge
{
public:
    CHIPOtaSoftwareUpdateRequestorClusterUpdateStateEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPOtaSoftwareUpdateRequestorClusterUpdateStateEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableOtaSoftwareUpdateRequestorClusterUpdateStateEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableOtaSoftwareUpdateRequestorClusterUpdateStateEnumAttributeCallback>
{
public:
    CHIPNullableOtaSoftwareUpdateRequestorClusterUpdateStateEnumAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                        ResponseHandler handler,
                                                                                        CHIPActionBlock action,
                                                                                        bool keepAlive = false) :
        CHIPCallbackBridge<NullableOtaSoftwareUpdateRequestorClusterUpdateStateEnumAttributeCallback>(queue, handler, action,
                                                                                                      OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::OtaSoftwareUpdateRequestor::UpdateStateEnum> & value);
};

class CHIPNullableOtaSoftwareUpdateRequestorClusterUpdateStateEnumAttributeCallbackSubscriptionBridge
    : public CHIPNullableOtaSoftwareUpdateRequestorClusterUpdateStateEnumAttributeCallbackBridge
{
public:
    CHIPNullableOtaSoftwareUpdateRequestorClusterUpdateStateEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableOtaSoftwareUpdateRequestorClusterUpdateStateEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPGeneralCommissioningClusterGeneralCommissioningErrorAttributeCallbackBridge
    : public CHIPCallbackBridge<GeneralCommissioningClusterGeneralCommissioningErrorAttributeCallback>
{
public:
    CHIPGeneralCommissioningClusterGeneralCommissioningErrorAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                    CHIPActionBlock action,
                                                                                    bool keepAlive = false) :
        CHIPCallbackBridge<GeneralCommissioningClusterGeneralCommissioningErrorAttributeCallback>(queue, handler, action,
                                                                                                  OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::GeneralCommissioning::GeneralCommissioningError value);
};

class CHIPGeneralCommissioningClusterGeneralCommissioningErrorAttributeCallbackSubscriptionBridge
    : public CHIPGeneralCommissioningClusterGeneralCommissioningErrorAttributeCallbackBridge
{
public:
    CHIPGeneralCommissioningClusterGeneralCommissioningErrorAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPGeneralCommissioningClusterGeneralCommissioningErrorAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableGeneralCommissioningClusterGeneralCommissioningErrorAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableGeneralCommissioningClusterGeneralCommissioningErrorAttributeCallback>
{
public:
    CHIPNullableGeneralCommissioningClusterGeneralCommissioningErrorAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                            ResponseHandler handler,
                                                                                            CHIPActionBlock action,
                                                                                            bool keepAlive = false) :
        CHIPCallbackBridge<NullableGeneralCommissioningClusterGeneralCommissioningErrorAttributeCallback>(queue, handler, action,
                                                                                                          OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::GeneralCommissioning::GeneralCommissioningError> & value);
};

class CHIPNullableGeneralCommissioningClusterGeneralCommissioningErrorAttributeCallbackSubscriptionBridge
    : public CHIPNullableGeneralCommissioningClusterGeneralCommissioningErrorAttributeCallbackBridge
{
public:
    CHIPNullableGeneralCommissioningClusterGeneralCommissioningErrorAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableGeneralCommissioningClusterGeneralCommissioningErrorAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPGeneralCommissioningClusterRegulatoryLocationTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<GeneralCommissioningClusterRegulatoryLocationTypeAttributeCallback>
{
public:
    CHIPGeneralCommissioningClusterRegulatoryLocationTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                 CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<GeneralCommissioningClusterRegulatoryLocationTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                               keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::GeneralCommissioning::RegulatoryLocationType value);
};

class CHIPGeneralCommissioningClusterRegulatoryLocationTypeAttributeCallbackSubscriptionBridge
    : public CHIPGeneralCommissioningClusterRegulatoryLocationTypeAttributeCallbackBridge
{
public:
    CHIPGeneralCommissioningClusterRegulatoryLocationTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPGeneralCommissioningClusterRegulatoryLocationTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableGeneralCommissioningClusterRegulatoryLocationTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableGeneralCommissioningClusterRegulatoryLocationTypeAttributeCallback>
{
public:
    CHIPNullableGeneralCommissioningClusterRegulatoryLocationTypeAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                         ResponseHandler handler,
                                                                                         CHIPActionBlock action,
                                                                                         bool keepAlive = false) :
        CHIPCallbackBridge<NullableGeneralCommissioningClusterRegulatoryLocationTypeAttributeCallback>(queue, handler, action,
                                                                                                       OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::GeneralCommissioning::RegulatoryLocationType> & value);
};

class CHIPNullableGeneralCommissioningClusterRegulatoryLocationTypeAttributeCallbackSubscriptionBridge
    : public CHIPNullableGeneralCommissioningClusterRegulatoryLocationTypeAttributeCallbackBridge
{
public:
    CHIPNullableGeneralCommissioningClusterRegulatoryLocationTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableGeneralCommissioningClusterRegulatoryLocationTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNetworkCommissioningClusterNetworkCommissioningStatusAttributeCallbackBridge
    : public CHIPCallbackBridge<NetworkCommissioningClusterNetworkCommissioningStatusAttributeCallback>
{
public:
    CHIPNetworkCommissioningClusterNetworkCommissioningStatusAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                     ResponseHandler handler,
                                                                                     CHIPActionBlock action,
                                                                                     bool keepAlive = false) :
        CHIPCallbackBridge<NetworkCommissioningClusterNetworkCommissioningStatusAttributeCallback>(queue, handler, action,
                                                                                                   OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::NetworkCommissioning::NetworkCommissioningStatus value);
};

class CHIPNetworkCommissioningClusterNetworkCommissioningStatusAttributeCallbackSubscriptionBridge
    : public CHIPNetworkCommissioningClusterNetworkCommissioningStatusAttributeCallbackBridge
{
public:
    CHIPNetworkCommissioningClusterNetworkCommissioningStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNetworkCommissioningClusterNetworkCommissioningStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableNetworkCommissioningClusterNetworkCommissioningStatusAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableNetworkCommissioningClusterNetworkCommissioningStatusAttributeCallback>
{
public:
    CHIPNullableNetworkCommissioningClusterNetworkCommissioningStatusAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                             ResponseHandler handler,
                                                                                             CHIPActionBlock action,
                                                                                             bool keepAlive = false) :
        CHIPCallbackBridge<NullableNetworkCommissioningClusterNetworkCommissioningStatusAttributeCallback>(
            queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::Nullable<chip::app::Clusters::NetworkCommissioning::NetworkCommissioningStatus> & value);
};

class CHIPNullableNetworkCommissioningClusterNetworkCommissioningStatusAttributeCallbackSubscriptionBridge
    : public CHIPNullableNetworkCommissioningClusterNetworkCommissioningStatusAttributeCallbackBridge
{
public:
    CHIPNullableNetworkCommissioningClusterNetworkCommissioningStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableNetworkCommissioningClusterNetworkCommissioningStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNetworkCommissioningClusterWiFiBandAttributeCallbackBridge
    : public CHIPCallbackBridge<NetworkCommissioningClusterWiFiBandAttributeCallback>
{
public:
    CHIPNetworkCommissioningClusterWiFiBandAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NetworkCommissioningClusterWiFiBandAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::NetworkCommissioning::WiFiBand value);
};

class CHIPNetworkCommissioningClusterWiFiBandAttributeCallbackSubscriptionBridge
    : public CHIPNetworkCommissioningClusterWiFiBandAttributeCallbackBridge
{
public:
    CHIPNetworkCommissioningClusterWiFiBandAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               CHIPActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        CHIPNetworkCommissioningClusterWiFiBandAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableNetworkCommissioningClusterWiFiBandAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableNetworkCommissioningClusterWiFiBandAttributeCallback>
{
public:
    CHIPNullableNetworkCommissioningClusterWiFiBandAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableNetworkCommissioningClusterWiFiBandAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                         keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::NetworkCommissioning::WiFiBand> & value);
};

class CHIPNullableNetworkCommissioningClusterWiFiBandAttributeCallbackSubscriptionBridge
    : public CHIPNullableNetworkCommissioningClusterWiFiBandAttributeCallbackBridge
{
public:
    CHIPNullableNetworkCommissioningClusterWiFiBandAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableNetworkCommissioningClusterWiFiBandAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPDiagnosticLogsClusterLogsIntentAttributeCallbackBridge
    : public CHIPCallbackBridge<DiagnosticLogsClusterLogsIntentAttributeCallback>
{
public:
    CHIPDiagnosticLogsClusterLogsIntentAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<DiagnosticLogsClusterLogsIntentAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DiagnosticLogs::LogsIntent value);
};

class CHIPDiagnosticLogsClusterLogsIntentAttributeCallbackSubscriptionBridge
    : public CHIPDiagnosticLogsClusterLogsIntentAttributeCallbackBridge
{
public:
    CHIPDiagnosticLogsClusterLogsIntentAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           CHIPActionBlock action,
                                                                           SubscriptionEstablishedHandler establishedHandler) :
        CHIPDiagnosticLogsClusterLogsIntentAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableDiagnosticLogsClusterLogsIntentAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableDiagnosticLogsClusterLogsIntentAttributeCallback>
{
public:
    CHIPNullableDiagnosticLogsClusterLogsIntentAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableDiagnosticLogsClusterLogsIntentAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                     keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DiagnosticLogs::LogsIntent> & value);
};

class CHIPNullableDiagnosticLogsClusterLogsIntentAttributeCallbackSubscriptionBridge
    : public CHIPNullableDiagnosticLogsClusterLogsIntentAttributeCallbackBridge
{
public:
    CHIPNullableDiagnosticLogsClusterLogsIntentAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableDiagnosticLogsClusterLogsIntentAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPDiagnosticLogsClusterLogsStatusAttributeCallbackBridge
    : public CHIPCallbackBridge<DiagnosticLogsClusterLogsStatusAttributeCallback>
{
public:
    CHIPDiagnosticLogsClusterLogsStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<DiagnosticLogsClusterLogsStatusAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DiagnosticLogs::LogsStatus value);
};

class CHIPDiagnosticLogsClusterLogsStatusAttributeCallbackSubscriptionBridge
    : public CHIPDiagnosticLogsClusterLogsStatusAttributeCallbackBridge
{
public:
    CHIPDiagnosticLogsClusterLogsStatusAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           CHIPActionBlock action,
                                                                           SubscriptionEstablishedHandler establishedHandler) :
        CHIPDiagnosticLogsClusterLogsStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableDiagnosticLogsClusterLogsStatusAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableDiagnosticLogsClusterLogsStatusAttributeCallback>
{
public:
    CHIPNullableDiagnosticLogsClusterLogsStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableDiagnosticLogsClusterLogsStatusAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                     keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DiagnosticLogs::LogsStatus> & value);
};

class CHIPNullableDiagnosticLogsClusterLogsStatusAttributeCallbackSubscriptionBridge
    : public CHIPNullableDiagnosticLogsClusterLogsStatusAttributeCallbackBridge
{
public:
    CHIPNullableDiagnosticLogsClusterLogsStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableDiagnosticLogsClusterLogsStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPDiagnosticLogsClusterLogsTransferProtocolAttributeCallbackBridge
    : public CHIPCallbackBridge<DiagnosticLogsClusterLogsTransferProtocolAttributeCallback>
{
public:
    CHIPDiagnosticLogsClusterLogsTransferProtocolAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<DiagnosticLogsClusterLogsTransferProtocolAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DiagnosticLogs::LogsTransferProtocol value);
};

class CHIPDiagnosticLogsClusterLogsTransferProtocolAttributeCallbackSubscriptionBridge
    : public CHIPDiagnosticLogsClusterLogsTransferProtocolAttributeCallbackBridge
{
public:
    CHIPDiagnosticLogsClusterLogsTransferProtocolAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPDiagnosticLogsClusterLogsTransferProtocolAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableDiagnosticLogsClusterLogsTransferProtocolAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableDiagnosticLogsClusterLogsTransferProtocolAttributeCallback>
{
public:
    CHIPNullableDiagnosticLogsClusterLogsTransferProtocolAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                 CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableDiagnosticLogsClusterLogsTransferProtocolAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                               keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::DiagnosticLogs::LogsTransferProtocol> & value);
};

class CHIPNullableDiagnosticLogsClusterLogsTransferProtocolAttributeCallbackSubscriptionBridge
    : public CHIPNullableDiagnosticLogsClusterLogsTransferProtocolAttributeCallbackBridge
{
public:
    CHIPNullableDiagnosticLogsClusterLogsTransferProtocolAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableDiagnosticLogsClusterLogsTransferProtocolAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPGeneralDiagnosticsClusterBootReasonTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<GeneralDiagnosticsClusterBootReasonTypeAttributeCallback>
{
public:
    CHIPGeneralDiagnosticsClusterBootReasonTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<GeneralDiagnosticsClusterBootReasonTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                     keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::GeneralDiagnostics::BootReasonType value);
};

class CHIPGeneralDiagnosticsClusterBootReasonTypeAttributeCallbackSubscriptionBridge
    : public CHIPGeneralDiagnosticsClusterBootReasonTypeAttributeCallbackBridge
{
public:
    CHIPGeneralDiagnosticsClusterBootReasonTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPGeneralDiagnosticsClusterBootReasonTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableGeneralDiagnosticsClusterBootReasonTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableGeneralDiagnosticsClusterBootReasonTypeAttributeCallback>
{
public:
    CHIPNullableGeneralDiagnosticsClusterBootReasonTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableGeneralDiagnosticsClusterBootReasonTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                             keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::GeneralDiagnostics::BootReasonType> & value);
};

class CHIPNullableGeneralDiagnosticsClusterBootReasonTypeAttributeCallbackSubscriptionBridge
    : public CHIPNullableGeneralDiagnosticsClusterBootReasonTypeAttributeCallbackBridge
{
public:
    CHIPNullableGeneralDiagnosticsClusterBootReasonTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableGeneralDiagnosticsClusterBootReasonTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPGeneralDiagnosticsClusterHardwareFaultTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<GeneralDiagnosticsClusterHardwareFaultTypeAttributeCallback>
{
public:
    CHIPGeneralDiagnosticsClusterHardwareFaultTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<GeneralDiagnosticsClusterHardwareFaultTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::GeneralDiagnostics::HardwareFaultType value);
};

class CHIPGeneralDiagnosticsClusterHardwareFaultTypeAttributeCallbackSubscriptionBridge
    : public CHIPGeneralDiagnosticsClusterHardwareFaultTypeAttributeCallbackBridge
{
public:
    CHIPGeneralDiagnosticsClusterHardwareFaultTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPGeneralDiagnosticsClusterHardwareFaultTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableGeneralDiagnosticsClusterHardwareFaultTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableGeneralDiagnosticsClusterHardwareFaultTypeAttributeCallback>
{
public:
    CHIPNullableGeneralDiagnosticsClusterHardwareFaultTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                  CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableGeneralDiagnosticsClusterHardwareFaultTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                                keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::GeneralDiagnostics::HardwareFaultType> & value);
};

class CHIPNullableGeneralDiagnosticsClusterHardwareFaultTypeAttributeCallbackSubscriptionBridge
    : public CHIPNullableGeneralDiagnosticsClusterHardwareFaultTypeAttributeCallbackBridge
{
public:
    CHIPNullableGeneralDiagnosticsClusterHardwareFaultTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableGeneralDiagnosticsClusterHardwareFaultTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPGeneralDiagnosticsClusterInterfaceTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<GeneralDiagnosticsClusterInterfaceTypeAttributeCallback>
{
public:
    CHIPGeneralDiagnosticsClusterInterfaceTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<GeneralDiagnosticsClusterInterfaceTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::GeneralDiagnostics::InterfaceType value);
};

class CHIPGeneralDiagnosticsClusterInterfaceTypeAttributeCallbackSubscriptionBridge
    : public CHIPGeneralDiagnosticsClusterInterfaceTypeAttributeCallbackBridge
{
public:
    CHIPGeneralDiagnosticsClusterInterfaceTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPGeneralDiagnosticsClusterInterfaceTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableGeneralDiagnosticsClusterInterfaceTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableGeneralDiagnosticsClusterInterfaceTypeAttributeCallback>
{
public:
    CHIPNullableGeneralDiagnosticsClusterInterfaceTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableGeneralDiagnosticsClusterInterfaceTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                            keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::GeneralDiagnostics::InterfaceType> & value);
};

class CHIPNullableGeneralDiagnosticsClusterInterfaceTypeAttributeCallbackSubscriptionBridge
    : public CHIPNullableGeneralDiagnosticsClusterInterfaceTypeAttributeCallbackBridge
{
public:
    CHIPNullableGeneralDiagnosticsClusterInterfaceTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableGeneralDiagnosticsClusterInterfaceTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPGeneralDiagnosticsClusterNetworkFaultTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<GeneralDiagnosticsClusterNetworkFaultTypeAttributeCallback>
{
public:
    CHIPGeneralDiagnosticsClusterNetworkFaultTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<GeneralDiagnosticsClusterNetworkFaultTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::GeneralDiagnostics::NetworkFaultType value);
};

class CHIPGeneralDiagnosticsClusterNetworkFaultTypeAttributeCallbackSubscriptionBridge
    : public CHIPGeneralDiagnosticsClusterNetworkFaultTypeAttributeCallbackBridge
{
public:
    CHIPGeneralDiagnosticsClusterNetworkFaultTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPGeneralDiagnosticsClusterNetworkFaultTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableGeneralDiagnosticsClusterNetworkFaultTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableGeneralDiagnosticsClusterNetworkFaultTypeAttributeCallback>
{
public:
    CHIPNullableGeneralDiagnosticsClusterNetworkFaultTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                 CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableGeneralDiagnosticsClusterNetworkFaultTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                               keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::GeneralDiagnostics::NetworkFaultType> & value);
};

class CHIPNullableGeneralDiagnosticsClusterNetworkFaultTypeAttributeCallbackSubscriptionBridge
    : public CHIPNullableGeneralDiagnosticsClusterNetworkFaultTypeAttributeCallbackBridge
{
public:
    CHIPNullableGeneralDiagnosticsClusterNetworkFaultTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableGeneralDiagnosticsClusterNetworkFaultTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPGeneralDiagnosticsClusterRadioFaultTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<GeneralDiagnosticsClusterRadioFaultTypeAttributeCallback>
{
public:
    CHIPGeneralDiagnosticsClusterRadioFaultTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<GeneralDiagnosticsClusterRadioFaultTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                     keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::GeneralDiagnostics::RadioFaultType value);
};

class CHIPGeneralDiagnosticsClusterRadioFaultTypeAttributeCallbackSubscriptionBridge
    : public CHIPGeneralDiagnosticsClusterRadioFaultTypeAttributeCallbackBridge
{
public:
    CHIPGeneralDiagnosticsClusterRadioFaultTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPGeneralDiagnosticsClusterRadioFaultTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableGeneralDiagnosticsClusterRadioFaultTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableGeneralDiagnosticsClusterRadioFaultTypeAttributeCallback>
{
public:
    CHIPNullableGeneralDiagnosticsClusterRadioFaultTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableGeneralDiagnosticsClusterRadioFaultTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                             keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::GeneralDiagnostics::RadioFaultType> & value);
};

class CHIPNullableGeneralDiagnosticsClusterRadioFaultTypeAttributeCallbackSubscriptionBridge
    : public CHIPNullableGeneralDiagnosticsClusterRadioFaultTypeAttributeCallbackBridge
{
public:
    CHIPNullableGeneralDiagnosticsClusterRadioFaultTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableGeneralDiagnosticsClusterRadioFaultTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallbackBridge
    : public CHIPCallbackBridge<ThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallback>
{
public:
    CHIPThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<ThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                         keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ThreadNetworkDiagnostics::NetworkFault value);
};

class CHIPThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallbackSubscriptionBridge
    : public CHIPThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallbackBridge
{
public:
    CHIPThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallback>
{
public:
    CHIPNullableThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                   CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallback>(queue, handler, action,
                                                                                                 OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::ThreadNetworkDiagnostics::NetworkFault> & value);
};

class CHIPNullableThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallbackSubscriptionBridge
    : public CHIPNullableThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallbackBridge
{
public:
    CHIPNullableThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallbackBridge
    : public CHIPCallbackBridge<ThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallback>
{
public:
    CHIPThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<ThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ThreadNetworkDiagnostics::RoutingRole value);
};

class CHIPThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallbackSubscriptionBridge
    : public CHIPThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallbackBridge
{
public:
    CHIPThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallback>
{
public:
    CHIPNullableThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                  CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                                keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::ThreadNetworkDiagnostics::RoutingRole> & value);
};

class CHIPNullableThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallbackSubscriptionBridge
    : public CHIPNullableThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallbackBridge
{
public:
    CHIPNullableThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallbackBridge
    : public CHIPCallbackBridge<ThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallback>
{
public:
    CHIPThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                     ResponseHandler handler,
                                                                                     CHIPActionBlock action,
                                                                                     bool keepAlive = false) :
        CHIPCallbackBridge<ThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallback>(queue, handler, action,
                                                                                                   OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ThreadNetworkDiagnostics::ThreadConnectionStatus value);
};

class CHIPThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallbackSubscriptionBridge
    : public CHIPThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallbackBridge
{
public:
    CHIPThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallback>
{
public:
    CHIPNullableThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                             ResponseHandler handler,
                                                                                             CHIPActionBlock action,
                                                                                             bool keepAlive = false) :
        CHIPCallbackBridge<NullableThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallback>(
            queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::Nullable<chip::app::Clusters::ThreadNetworkDiagnostics::ThreadConnectionStatus> & value);
};

class CHIPNullableThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallbackSubscriptionBridge
    : public CHIPNullableThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallbackBridge
{
public:
    CHIPNullableThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPWiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallbackBridge
    : public CHIPCallbackBridge<WiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallback>
{
public:
    CHIPWiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                    CHIPActionBlock action,
                                                                                    bool keepAlive = false) :
        CHIPCallbackBridge<WiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallback>(queue, handler, action,
                                                                                                  OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::WiFiNetworkDiagnostics::AssociationFailureCause value);
};

class CHIPWiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallbackSubscriptionBridge
    : public CHIPWiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallbackBridge
{
public:
    CHIPWiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPWiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableWiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableWiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallback>
{
public:
    CHIPNullableWiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                            ResponseHandler handler,
                                                                                            CHIPActionBlock action,
                                                                                            bool keepAlive = false) :
        CHIPCallbackBridge<NullableWiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallback>(queue, handler, action,
                                                                                                          OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::WiFiNetworkDiagnostics::AssociationFailureCause> & value);
};

class CHIPNullableWiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallbackSubscriptionBridge
    : public CHIPNullableWiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallbackBridge
{
public:
    CHIPNullableWiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableWiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPWiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<WiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallback>
{
public:
    CHIPWiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<WiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::WiFiNetworkDiagnostics::SecurityType value);
};

class CHIPWiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallbackSubscriptionBridge
    : public CHIPWiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallbackBridge
{
public:
    CHIPWiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPWiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableWiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableWiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallback>
{
public:
    CHIPNullableWiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                 CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableWiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                               keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::WiFiNetworkDiagnostics::SecurityType> & value);
};

class CHIPNullableWiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallbackSubscriptionBridge
    : public CHIPNullableWiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallbackBridge
{
public:
    CHIPNullableWiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableWiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPWiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallbackBridge
    : public CHIPCallbackBridge<WiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallback>
{
public:
    CHIPWiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                 CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<WiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                               keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::WiFiNetworkDiagnostics::WiFiConnectionStatus value);
};

class CHIPWiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallbackSubscriptionBridge
    : public CHIPWiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallbackBridge
{
public:
    CHIPWiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPWiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableWiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableWiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallback>
{
public:
    CHIPNullableWiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                         ResponseHandler handler,
                                                                                         CHIPActionBlock action,
                                                                                         bool keepAlive = false) :
        CHIPCallbackBridge<NullableWiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallback>(queue, handler, action,
                                                                                                       OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::WiFiNetworkDiagnostics::WiFiConnectionStatus> & value);
};

class CHIPNullableWiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallbackSubscriptionBridge
    : public CHIPNullableWiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallbackBridge
{
public:
    CHIPNullableWiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableWiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPWiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<WiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallback>
{
public:
    CHIPWiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<WiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                          keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::WiFiNetworkDiagnostics::WiFiVersionType value);
};

class CHIPWiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallbackSubscriptionBridge
    : public CHIPWiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallbackBridge
{
public:
    CHIPWiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPWiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableWiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableWiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallback>
{
public:
    CHIPNullableWiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                    CHIPActionBlock action,
                                                                                    bool keepAlive = false) :
        CHIPCallbackBridge<NullableWiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallback>(queue, handler, action,
                                                                                                  OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::WiFiNetworkDiagnostics::WiFiVersionType> & value);
};

class CHIPNullableWiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallbackSubscriptionBridge
    : public CHIPNullableWiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallbackBridge
{
public:
    CHIPNullableWiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableWiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPEthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<EthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallback>
{
public:
    CHIPEthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<EthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                          keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::EthernetNetworkDiagnostics::PHYRateType value);
};

class CHIPEthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallbackSubscriptionBridge
    : public CHIPEthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallbackBridge
{
public:
    CHIPEthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPEthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableEthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableEthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallback>
{
public:
    CHIPNullableEthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                    CHIPActionBlock action,
                                                                                    bool keepAlive = false) :
        CHIPCallbackBridge<NullableEthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallback>(queue, handler, action,
                                                                                                  OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::EthernetNetworkDiagnostics::PHYRateType> & value);
};

class CHIPNullableEthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallbackSubscriptionBridge
    : public CHIPNullableEthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallbackBridge
{
public:
    CHIPNullableEthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableEthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPAdministratorCommissioningClusterCommissioningWindowStatusAttributeCallbackBridge
    : public CHIPCallbackBridge<AdministratorCommissioningClusterCommissioningWindowStatusAttributeCallback>
{
public:
    CHIPAdministratorCommissioningClusterCommissioningWindowStatusAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                          ResponseHandler handler,
                                                                                          CHIPActionBlock action,
                                                                                          bool keepAlive = false) :
        CHIPCallbackBridge<AdministratorCommissioningClusterCommissioningWindowStatusAttributeCallback>(queue, handler, action,
                                                                                                        OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::AdministratorCommissioning::CommissioningWindowStatus value);
};

class CHIPAdministratorCommissioningClusterCommissioningWindowStatusAttributeCallbackSubscriptionBridge
    : public CHIPAdministratorCommissioningClusterCommissioningWindowStatusAttributeCallbackBridge
{
public:
    CHIPAdministratorCommissioningClusterCommissioningWindowStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPAdministratorCommissioningClusterCommissioningWindowStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableAdministratorCommissioningClusterCommissioningWindowStatusAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableAdministratorCommissioningClusterCommissioningWindowStatusAttributeCallback>
{
public:
    CHIPNullableAdministratorCommissioningClusterCommissioningWindowStatusAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                                  ResponseHandler handler,
                                                                                                  CHIPActionBlock action,
                                                                                                  bool keepAlive = false) :
        CHIPCallbackBridge<NullableAdministratorCommissioningClusterCommissioningWindowStatusAttributeCallback>(
            queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::Nullable<chip::app::Clusters::AdministratorCommissioning::CommissioningWindowStatus> & value);
};

class CHIPNullableAdministratorCommissioningClusterCommissioningWindowStatusAttributeCallbackSubscriptionBridge
    : public CHIPNullableAdministratorCommissioningClusterCommissioningWindowStatusAttributeCallbackBridge
{
public:
    CHIPNullableAdministratorCommissioningClusterCommissioningWindowStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableAdministratorCommissioningClusterCommissioningWindowStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPAdministratorCommissioningClusterStatusCodeAttributeCallbackBridge
    : public CHIPCallbackBridge<AdministratorCommissioningClusterStatusCodeAttributeCallback>
{
public:
    CHIPAdministratorCommissioningClusterStatusCodeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<AdministratorCommissioningClusterStatusCodeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                         keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::AdministratorCommissioning::StatusCode value);
};

class CHIPAdministratorCommissioningClusterStatusCodeAttributeCallbackSubscriptionBridge
    : public CHIPAdministratorCommissioningClusterStatusCodeAttributeCallbackBridge
{
public:
    CHIPAdministratorCommissioningClusterStatusCodeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPAdministratorCommissioningClusterStatusCodeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableAdministratorCommissioningClusterStatusCodeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableAdministratorCommissioningClusterStatusCodeAttributeCallback>
{
public:
    CHIPNullableAdministratorCommissioningClusterStatusCodeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                   CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableAdministratorCommissioningClusterStatusCodeAttributeCallback>(queue, handler, action,
                                                                                                 OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::AdministratorCommissioning::StatusCode> & value);
};

class CHIPNullableAdministratorCommissioningClusterStatusCodeAttributeCallbackSubscriptionBridge
    : public CHIPNullableAdministratorCommissioningClusterStatusCodeAttributeCallbackBridge
{
public:
    CHIPNullableAdministratorCommissioningClusterStatusCodeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableAdministratorCommissioningClusterStatusCodeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPOperationalCredentialsClusterNodeOperationalCertStatusAttributeCallbackBridge
    : public CHIPCallbackBridge<OperationalCredentialsClusterNodeOperationalCertStatusAttributeCallback>
{
public:
    CHIPOperationalCredentialsClusterNodeOperationalCertStatusAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                      ResponseHandler handler,
                                                                                      CHIPActionBlock action,
                                                                                      bool keepAlive = false) :
        CHIPCallbackBridge<OperationalCredentialsClusterNodeOperationalCertStatusAttributeCallback>(queue, handler, action,
                                                                                                    OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::OperationalCredentials::NodeOperationalCertStatus value);
};

class CHIPOperationalCredentialsClusterNodeOperationalCertStatusAttributeCallbackSubscriptionBridge
    : public CHIPOperationalCredentialsClusterNodeOperationalCertStatusAttributeCallbackBridge
{
public:
    CHIPOperationalCredentialsClusterNodeOperationalCertStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPOperationalCredentialsClusterNodeOperationalCertStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableOperationalCredentialsClusterNodeOperationalCertStatusAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableOperationalCredentialsClusterNodeOperationalCertStatusAttributeCallback>
{
public:
    CHIPNullableOperationalCredentialsClusterNodeOperationalCertStatusAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                              ResponseHandler handler,
                                                                                              CHIPActionBlock action,
                                                                                              bool keepAlive = false) :
        CHIPCallbackBridge<NullableOperationalCredentialsClusterNodeOperationalCertStatusAttributeCallback>(
            queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::Nullable<chip::app::Clusters::OperationalCredentials::NodeOperationalCertStatus> & value);
};

class CHIPNullableOperationalCredentialsClusterNodeOperationalCertStatusAttributeCallbackSubscriptionBridge
    : public CHIPNullableOperationalCredentialsClusterNodeOperationalCertStatusAttributeCallbackBridge
{
public:
    CHIPNullableOperationalCredentialsClusterNodeOperationalCertStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableOperationalCredentialsClusterNodeOperationalCertStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPGroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallbackBridge
    : public CHIPCallbackBridge<GroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallback>
{
public:
    CHIPGroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<GroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                             keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::GroupKeyManagement::GroupKeySecurityPolicy value);
};

class CHIPGroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallbackSubscriptionBridge
    : public CHIPGroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallbackBridge
{
public:
    CHIPGroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPGroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableGroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableGroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallback>
{
public:
    CHIPNullableGroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                       ResponseHandler handler,
                                                                                       CHIPActionBlock action,
                                                                                       bool keepAlive = false) :
        CHIPCallbackBridge<NullableGroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallback>(queue, handler, action,
                                                                                                     OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::GroupKeyManagement::GroupKeySecurityPolicy> & value);
};

class CHIPNullableGroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallbackSubscriptionBridge
    : public CHIPNullableGroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallbackBridge
{
public:
    CHIPNullableGroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableGroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPDoorLockClusterDlAlarmCodeAttributeCallbackBridge : public CHIPCallbackBridge<DoorLockClusterDlAlarmCodeAttributeCallback>
{
public:
    CHIPDoorLockClusterDlAlarmCodeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                          bool keepAlive = false) :
        CHIPCallbackBridge<DoorLockClusterDlAlarmCodeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DlAlarmCode value);
};

class CHIPDoorLockClusterDlAlarmCodeAttributeCallbackSubscriptionBridge
    : public CHIPDoorLockClusterDlAlarmCodeAttributeCallbackBridge
{
public:
    CHIPDoorLockClusterDlAlarmCodeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      CHIPActionBlock action,
                                                                      SubscriptionEstablishedHandler establishedHandler) :
        CHIPDoorLockClusterDlAlarmCodeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableDoorLockClusterDlAlarmCodeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableDoorLockClusterDlAlarmCodeAttributeCallback>
{
public:
    CHIPNullableDoorLockClusterDlAlarmCodeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableDoorLockClusterDlAlarmCodeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlAlarmCode> & value);
};

class CHIPNullableDoorLockClusterDlAlarmCodeAttributeCallbackSubscriptionBridge
    : public CHIPNullableDoorLockClusterDlAlarmCodeAttributeCallbackBridge
{
public:
    CHIPNullableDoorLockClusterDlAlarmCodeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              CHIPActionBlock action,
                                                                              SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableDoorLockClusterDlAlarmCodeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPDoorLockClusterDlCredentialRuleAttributeCallbackBridge
    : public CHIPCallbackBridge<DoorLockClusterDlCredentialRuleAttributeCallback>
{
public:
    CHIPDoorLockClusterDlCredentialRuleAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<DoorLockClusterDlCredentialRuleAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DlCredentialRule value);
};

class CHIPDoorLockClusterDlCredentialRuleAttributeCallbackSubscriptionBridge
    : public CHIPDoorLockClusterDlCredentialRuleAttributeCallbackBridge
{
public:
    CHIPDoorLockClusterDlCredentialRuleAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           CHIPActionBlock action,
                                                                           SubscriptionEstablishedHandler establishedHandler) :
        CHIPDoorLockClusterDlCredentialRuleAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableDoorLockClusterDlCredentialRuleAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableDoorLockClusterDlCredentialRuleAttributeCallback>
{
public:
    CHIPNullableDoorLockClusterDlCredentialRuleAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableDoorLockClusterDlCredentialRuleAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                     keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlCredentialRule> & value);
};

class CHIPNullableDoorLockClusterDlCredentialRuleAttributeCallbackSubscriptionBridge
    : public CHIPNullableDoorLockClusterDlCredentialRuleAttributeCallbackBridge
{
public:
    CHIPNullableDoorLockClusterDlCredentialRuleAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableDoorLockClusterDlCredentialRuleAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPDoorLockClusterDlCredentialTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<DoorLockClusterDlCredentialTypeAttributeCallback>
{
public:
    CHIPDoorLockClusterDlCredentialTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<DoorLockClusterDlCredentialTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DlCredentialType value);
};

class CHIPDoorLockClusterDlCredentialTypeAttributeCallbackSubscriptionBridge
    : public CHIPDoorLockClusterDlCredentialTypeAttributeCallbackBridge
{
public:
    CHIPDoorLockClusterDlCredentialTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           CHIPActionBlock action,
                                                                           SubscriptionEstablishedHandler establishedHandler) :
        CHIPDoorLockClusterDlCredentialTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableDoorLockClusterDlCredentialTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableDoorLockClusterDlCredentialTypeAttributeCallback>
{
public:
    CHIPNullableDoorLockClusterDlCredentialTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableDoorLockClusterDlCredentialTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                     keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlCredentialType> & value);
};

class CHIPNullableDoorLockClusterDlCredentialTypeAttributeCallbackSubscriptionBridge
    : public CHIPNullableDoorLockClusterDlCredentialTypeAttributeCallbackBridge
{
public:
    CHIPNullableDoorLockClusterDlCredentialTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableDoorLockClusterDlCredentialTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPDoorLockClusterDlDataOperationTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<DoorLockClusterDlDataOperationTypeAttributeCallback>
{
public:
    CHIPDoorLockClusterDlDataOperationTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<DoorLockClusterDlDataOperationTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DlDataOperationType value);
};

class CHIPDoorLockClusterDlDataOperationTypeAttributeCallbackSubscriptionBridge
    : public CHIPDoorLockClusterDlDataOperationTypeAttributeCallbackBridge
{
public:
    CHIPDoorLockClusterDlDataOperationTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              CHIPActionBlock action,
                                                                              SubscriptionEstablishedHandler establishedHandler) :
        CHIPDoorLockClusterDlDataOperationTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableDoorLockClusterDlDataOperationTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableDoorLockClusterDlDataOperationTypeAttributeCallback>
{
public:
    CHIPNullableDoorLockClusterDlDataOperationTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableDoorLockClusterDlDataOperationTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlDataOperationType> & value);
};

class CHIPNullableDoorLockClusterDlDataOperationTypeAttributeCallbackSubscriptionBridge
    : public CHIPNullableDoorLockClusterDlDataOperationTypeAttributeCallbackBridge
{
public:
    CHIPNullableDoorLockClusterDlDataOperationTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableDoorLockClusterDlDataOperationTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPDoorLockClusterDlDoorLockStatusAttributeCallbackBridge
    : public CHIPCallbackBridge<DoorLockClusterDlDoorLockStatusAttributeCallback>
{
public:
    CHIPDoorLockClusterDlDoorLockStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<DoorLockClusterDlDoorLockStatusAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DlDoorLockStatus value);
};

class CHIPDoorLockClusterDlDoorLockStatusAttributeCallbackSubscriptionBridge
    : public CHIPDoorLockClusterDlDoorLockStatusAttributeCallbackBridge
{
public:
    CHIPDoorLockClusterDlDoorLockStatusAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           CHIPActionBlock action,
                                                                           SubscriptionEstablishedHandler establishedHandler) :
        CHIPDoorLockClusterDlDoorLockStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableDoorLockClusterDlDoorLockStatusAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableDoorLockClusterDlDoorLockStatusAttributeCallback>
{
public:
    CHIPNullableDoorLockClusterDlDoorLockStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableDoorLockClusterDlDoorLockStatusAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                     keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlDoorLockStatus> & value);
};

class CHIPNullableDoorLockClusterDlDoorLockStatusAttributeCallbackSubscriptionBridge
    : public CHIPNullableDoorLockClusterDlDoorLockStatusAttributeCallbackBridge
{
public:
    CHIPNullableDoorLockClusterDlDoorLockStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableDoorLockClusterDlDoorLockStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPDoorLockClusterDlDoorStateAttributeCallbackBridge : public CHIPCallbackBridge<DoorLockClusterDlDoorStateAttributeCallback>
{
public:
    CHIPDoorLockClusterDlDoorStateAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                          bool keepAlive = false) :
        CHIPCallbackBridge<DoorLockClusterDlDoorStateAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DlDoorState value);
};

class CHIPDoorLockClusterDlDoorStateAttributeCallbackSubscriptionBridge
    : public CHIPDoorLockClusterDlDoorStateAttributeCallbackBridge
{
public:
    CHIPDoorLockClusterDlDoorStateAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      CHIPActionBlock action,
                                                                      SubscriptionEstablishedHandler establishedHandler) :
        CHIPDoorLockClusterDlDoorStateAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableDoorLockClusterDlDoorStateAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableDoorLockClusterDlDoorStateAttributeCallback>
{
public:
    CHIPNullableDoorLockClusterDlDoorStateAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableDoorLockClusterDlDoorStateAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlDoorState> & value);
};

class CHIPNullableDoorLockClusterDlDoorStateAttributeCallbackSubscriptionBridge
    : public CHIPNullableDoorLockClusterDlDoorStateAttributeCallbackBridge
{
public:
    CHIPNullableDoorLockClusterDlDoorStateAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              CHIPActionBlock action,
                                                                              SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableDoorLockClusterDlDoorStateAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPDoorLockClusterDlLockDataTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<DoorLockClusterDlLockDataTypeAttributeCallback>
{
public:
    CHIPDoorLockClusterDlLockDataTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                             CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<DoorLockClusterDlLockDataTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DlLockDataType value);
};

class CHIPDoorLockClusterDlLockDataTypeAttributeCallbackSubscriptionBridge
    : public CHIPDoorLockClusterDlLockDataTypeAttributeCallbackBridge
{
public:
    CHIPDoorLockClusterDlLockDataTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         CHIPActionBlock action,
                                                                         SubscriptionEstablishedHandler establishedHandler) :
        CHIPDoorLockClusterDlLockDataTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableDoorLockClusterDlLockDataTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableDoorLockClusterDlLockDataTypeAttributeCallback>
{
public:
    CHIPNullableDoorLockClusterDlLockDataTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableDoorLockClusterDlLockDataTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                   keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlLockDataType> & value);
};

class CHIPNullableDoorLockClusterDlLockDataTypeAttributeCallbackSubscriptionBridge
    : public CHIPNullableDoorLockClusterDlLockDataTypeAttributeCallbackBridge
{
public:
    CHIPNullableDoorLockClusterDlLockDataTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableDoorLockClusterDlLockDataTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPDoorLockClusterDlLockOperationTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<DoorLockClusterDlLockOperationTypeAttributeCallback>
{
public:
    CHIPDoorLockClusterDlLockOperationTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<DoorLockClusterDlLockOperationTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DlLockOperationType value);
};

class CHIPDoorLockClusterDlLockOperationTypeAttributeCallbackSubscriptionBridge
    : public CHIPDoorLockClusterDlLockOperationTypeAttributeCallbackBridge
{
public:
    CHIPDoorLockClusterDlLockOperationTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              CHIPActionBlock action,
                                                                              SubscriptionEstablishedHandler establishedHandler) :
        CHIPDoorLockClusterDlLockOperationTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableDoorLockClusterDlLockOperationTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableDoorLockClusterDlLockOperationTypeAttributeCallback>
{
public:
    CHIPNullableDoorLockClusterDlLockOperationTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableDoorLockClusterDlLockOperationTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlLockOperationType> & value);
};

class CHIPNullableDoorLockClusterDlLockOperationTypeAttributeCallbackSubscriptionBridge
    : public CHIPNullableDoorLockClusterDlLockOperationTypeAttributeCallbackBridge
{
public:
    CHIPNullableDoorLockClusterDlLockOperationTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableDoorLockClusterDlLockOperationTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPDoorLockClusterDlLockStateAttributeCallbackBridge : public CHIPCallbackBridge<DoorLockClusterDlLockStateAttributeCallback>
{
public:
    CHIPDoorLockClusterDlLockStateAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                          bool keepAlive = false) :
        CHIPCallbackBridge<DoorLockClusterDlLockStateAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DlLockState value);
};

class CHIPDoorLockClusterDlLockStateAttributeCallbackSubscriptionBridge
    : public CHIPDoorLockClusterDlLockStateAttributeCallbackBridge
{
public:
    CHIPDoorLockClusterDlLockStateAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      CHIPActionBlock action,
                                                                      SubscriptionEstablishedHandler establishedHandler) :
        CHIPDoorLockClusterDlLockStateAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableDoorLockClusterDlLockStateAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableDoorLockClusterDlLockStateAttributeCallback>
{
public:
    CHIPNullableDoorLockClusterDlLockStateAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableDoorLockClusterDlLockStateAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlLockState> & value);
};

class CHIPNullableDoorLockClusterDlLockStateAttributeCallbackSubscriptionBridge
    : public CHIPNullableDoorLockClusterDlLockStateAttributeCallbackBridge
{
public:
    CHIPNullableDoorLockClusterDlLockStateAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              CHIPActionBlock action,
                                                                              SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableDoorLockClusterDlLockStateAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPDoorLockClusterDlLockTypeAttributeCallbackBridge : public CHIPCallbackBridge<DoorLockClusterDlLockTypeAttributeCallback>
{
public:
    CHIPDoorLockClusterDlLockTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                         bool keepAlive = false) :
        CHIPCallbackBridge<DoorLockClusterDlLockTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DlLockType value);
};

class CHIPDoorLockClusterDlLockTypeAttributeCallbackSubscriptionBridge : public CHIPDoorLockClusterDlLockTypeAttributeCallbackBridge
{
public:
    CHIPDoorLockClusterDlLockTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     CHIPActionBlock action,
                                                                     SubscriptionEstablishedHandler establishedHandler) :
        CHIPDoorLockClusterDlLockTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableDoorLockClusterDlLockTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableDoorLockClusterDlLockTypeAttributeCallback>
{
public:
    CHIPNullableDoorLockClusterDlLockTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableDoorLockClusterDlLockTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlLockType> & value);
};

class CHIPNullableDoorLockClusterDlLockTypeAttributeCallbackSubscriptionBridge
    : public CHIPNullableDoorLockClusterDlLockTypeAttributeCallbackBridge
{
public:
    CHIPNullableDoorLockClusterDlLockTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             CHIPActionBlock action,
                                                                             SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableDoorLockClusterDlLockTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPDoorLockClusterDlOperatingModeAttributeCallbackBridge
    : public CHIPCallbackBridge<DoorLockClusterDlOperatingModeAttributeCallback>
{
public:
    CHIPDoorLockClusterDlOperatingModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<DoorLockClusterDlOperatingModeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DlOperatingMode value);
};

class CHIPDoorLockClusterDlOperatingModeAttributeCallbackSubscriptionBridge
    : public CHIPDoorLockClusterDlOperatingModeAttributeCallbackBridge
{
public:
    CHIPDoorLockClusterDlOperatingModeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          CHIPActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        CHIPDoorLockClusterDlOperatingModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableDoorLockClusterDlOperatingModeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableDoorLockClusterDlOperatingModeAttributeCallback>
{
public:
    CHIPNullableDoorLockClusterDlOperatingModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableDoorLockClusterDlOperatingModeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlOperatingMode> & value);
};

class CHIPNullableDoorLockClusterDlOperatingModeAttributeCallbackSubscriptionBridge
    : public CHIPNullableDoorLockClusterDlOperatingModeAttributeCallbackBridge
{
public:
    CHIPNullableDoorLockClusterDlOperatingModeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableDoorLockClusterDlOperatingModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPDoorLockClusterDlOperationErrorAttributeCallbackBridge
    : public CHIPCallbackBridge<DoorLockClusterDlOperationErrorAttributeCallback>
{
public:
    CHIPDoorLockClusterDlOperationErrorAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<DoorLockClusterDlOperationErrorAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DlOperationError value);
};

class CHIPDoorLockClusterDlOperationErrorAttributeCallbackSubscriptionBridge
    : public CHIPDoorLockClusterDlOperationErrorAttributeCallbackBridge
{
public:
    CHIPDoorLockClusterDlOperationErrorAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           CHIPActionBlock action,
                                                                           SubscriptionEstablishedHandler establishedHandler) :
        CHIPDoorLockClusterDlOperationErrorAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableDoorLockClusterDlOperationErrorAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableDoorLockClusterDlOperationErrorAttributeCallback>
{
public:
    CHIPNullableDoorLockClusterDlOperationErrorAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableDoorLockClusterDlOperationErrorAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                     keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlOperationError> & value);
};

class CHIPNullableDoorLockClusterDlOperationErrorAttributeCallbackSubscriptionBridge
    : public CHIPNullableDoorLockClusterDlOperationErrorAttributeCallbackBridge
{
public:
    CHIPNullableDoorLockClusterDlOperationErrorAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableDoorLockClusterDlOperationErrorAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPDoorLockClusterDlOperationSourceAttributeCallbackBridge
    : public CHIPCallbackBridge<DoorLockClusterDlOperationSourceAttributeCallback>
{
public:
    CHIPDoorLockClusterDlOperationSourceAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<DoorLockClusterDlOperationSourceAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DlOperationSource value);
};

class CHIPDoorLockClusterDlOperationSourceAttributeCallbackSubscriptionBridge
    : public CHIPDoorLockClusterDlOperationSourceAttributeCallbackBridge
{
public:
    CHIPDoorLockClusterDlOperationSourceAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            CHIPActionBlock action,
                                                                            SubscriptionEstablishedHandler establishedHandler) :
        CHIPDoorLockClusterDlOperationSourceAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableDoorLockClusterDlOperationSourceAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableDoorLockClusterDlOperationSourceAttributeCallback>
{
public:
    CHIPNullableDoorLockClusterDlOperationSourceAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableDoorLockClusterDlOperationSourceAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                      keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlOperationSource> & value);
};

class CHIPNullableDoorLockClusterDlOperationSourceAttributeCallbackSubscriptionBridge
    : public CHIPNullableDoorLockClusterDlOperationSourceAttributeCallbackBridge
{
public:
    CHIPNullableDoorLockClusterDlOperationSourceAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableDoorLockClusterDlOperationSourceAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPDoorLockClusterDlStatusAttributeCallbackBridge : public CHIPCallbackBridge<DoorLockClusterDlStatusAttributeCallback>
{
public:
    CHIPDoorLockClusterDlStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                       bool keepAlive = false) :
        CHIPCallbackBridge<DoorLockClusterDlStatusAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DlStatus value);
};

class CHIPDoorLockClusterDlStatusAttributeCallbackSubscriptionBridge : public CHIPDoorLockClusterDlStatusAttributeCallbackBridge
{
public:
    CHIPDoorLockClusterDlStatusAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   CHIPActionBlock action,
                                                                   SubscriptionEstablishedHandler establishedHandler) :
        CHIPDoorLockClusterDlStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableDoorLockClusterDlStatusAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableDoorLockClusterDlStatusAttributeCallback>
{
public:
    CHIPNullableDoorLockClusterDlStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableDoorLockClusterDlStatusAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlStatus> & value);
};

class CHIPNullableDoorLockClusterDlStatusAttributeCallbackSubscriptionBridge
    : public CHIPNullableDoorLockClusterDlStatusAttributeCallbackBridge
{
public:
    CHIPNullableDoorLockClusterDlStatusAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           CHIPActionBlock action,
                                                                           SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableDoorLockClusterDlStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPDoorLockClusterDlUserStatusAttributeCallbackBridge
    : public CHIPCallbackBridge<DoorLockClusterDlUserStatusAttributeCallback>
{
public:
    CHIPDoorLockClusterDlUserStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                           bool keepAlive = false) :
        CHIPCallbackBridge<DoorLockClusterDlUserStatusAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DlUserStatus value);
};

class CHIPDoorLockClusterDlUserStatusAttributeCallbackSubscriptionBridge
    : public CHIPDoorLockClusterDlUserStatusAttributeCallbackBridge
{
public:
    CHIPDoorLockClusterDlUserStatusAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       CHIPActionBlock action,
                                                                       SubscriptionEstablishedHandler establishedHandler) :
        CHIPDoorLockClusterDlUserStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableDoorLockClusterDlUserStatusAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableDoorLockClusterDlUserStatusAttributeCallback>
{
public:
    CHIPNullableDoorLockClusterDlUserStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableDoorLockClusterDlUserStatusAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlUserStatus> & value);
};

class CHIPNullableDoorLockClusterDlUserStatusAttributeCallbackSubscriptionBridge
    : public CHIPNullableDoorLockClusterDlUserStatusAttributeCallbackBridge
{
public:
    CHIPNullableDoorLockClusterDlUserStatusAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               CHIPActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableDoorLockClusterDlUserStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPDoorLockClusterDlUserTypeAttributeCallbackBridge : public CHIPCallbackBridge<DoorLockClusterDlUserTypeAttributeCallback>
{
public:
    CHIPDoorLockClusterDlUserTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                         bool keepAlive = false) :
        CHIPCallbackBridge<DoorLockClusterDlUserTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DlUserType value);
};

class CHIPDoorLockClusterDlUserTypeAttributeCallbackSubscriptionBridge : public CHIPDoorLockClusterDlUserTypeAttributeCallbackBridge
{
public:
    CHIPDoorLockClusterDlUserTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     CHIPActionBlock action,
                                                                     SubscriptionEstablishedHandler establishedHandler) :
        CHIPDoorLockClusterDlUserTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableDoorLockClusterDlUserTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableDoorLockClusterDlUserTypeAttributeCallback>
{
public:
    CHIPNullableDoorLockClusterDlUserTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableDoorLockClusterDlUserTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlUserType> & value);
};

class CHIPNullableDoorLockClusterDlUserTypeAttributeCallbackSubscriptionBridge
    : public CHIPNullableDoorLockClusterDlUserTypeAttributeCallbackBridge
{
public:
    CHIPNullableDoorLockClusterDlUserTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             CHIPActionBlock action,
                                                                             SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableDoorLockClusterDlUserTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPDoorLockClusterDoorLockOperationEventCodeAttributeCallbackBridge
    : public CHIPCallbackBridge<DoorLockClusterDoorLockOperationEventCodeAttributeCallback>
{
public:
    CHIPDoorLockClusterDoorLockOperationEventCodeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<DoorLockClusterDoorLockOperationEventCodeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DoorLockOperationEventCode value);
};

class CHIPDoorLockClusterDoorLockOperationEventCodeAttributeCallbackSubscriptionBridge
    : public CHIPDoorLockClusterDoorLockOperationEventCodeAttributeCallbackBridge
{
public:
    CHIPDoorLockClusterDoorLockOperationEventCodeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPDoorLockClusterDoorLockOperationEventCodeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableDoorLockClusterDoorLockOperationEventCodeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableDoorLockClusterDoorLockOperationEventCodeAttributeCallback>
{
public:
    CHIPNullableDoorLockClusterDoorLockOperationEventCodeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                 CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableDoorLockClusterDoorLockOperationEventCodeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                               keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DoorLockOperationEventCode> & value);
};

class CHIPNullableDoorLockClusterDoorLockOperationEventCodeAttributeCallbackSubscriptionBridge
    : public CHIPNullableDoorLockClusterDoorLockOperationEventCodeAttributeCallbackBridge
{
public:
    CHIPNullableDoorLockClusterDoorLockOperationEventCodeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableDoorLockClusterDoorLockOperationEventCodeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPDoorLockClusterDoorLockProgrammingEventCodeAttributeCallbackBridge
    : public CHIPCallbackBridge<DoorLockClusterDoorLockProgrammingEventCodeAttributeCallback>
{
public:
    CHIPDoorLockClusterDoorLockProgrammingEventCodeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<DoorLockClusterDoorLockProgrammingEventCodeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                         keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DoorLockProgrammingEventCode value);
};

class CHIPDoorLockClusterDoorLockProgrammingEventCodeAttributeCallbackSubscriptionBridge
    : public CHIPDoorLockClusterDoorLockProgrammingEventCodeAttributeCallbackBridge
{
public:
    CHIPDoorLockClusterDoorLockProgrammingEventCodeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPDoorLockClusterDoorLockProgrammingEventCodeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableDoorLockClusterDoorLockProgrammingEventCodeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableDoorLockClusterDoorLockProgrammingEventCodeAttributeCallback>
{
public:
    CHIPNullableDoorLockClusterDoorLockProgrammingEventCodeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                   CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableDoorLockClusterDoorLockProgrammingEventCodeAttributeCallback>(queue, handler, action,
                                                                                                 OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DoorLockProgrammingEventCode> & value);
};

class CHIPNullableDoorLockClusterDoorLockProgrammingEventCodeAttributeCallbackSubscriptionBridge
    : public CHIPNullableDoorLockClusterDoorLockProgrammingEventCodeAttributeCallbackBridge
{
public:
    CHIPNullableDoorLockClusterDoorLockProgrammingEventCodeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableDoorLockClusterDoorLockProgrammingEventCodeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPDoorLockClusterDoorLockSetPinOrIdStatusAttributeCallbackBridge
    : public CHIPCallbackBridge<DoorLockClusterDoorLockSetPinOrIdStatusAttributeCallback>
{
public:
    CHIPDoorLockClusterDoorLockSetPinOrIdStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<DoorLockClusterDoorLockSetPinOrIdStatusAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                     keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DoorLockSetPinOrIdStatus value);
};

class CHIPDoorLockClusterDoorLockSetPinOrIdStatusAttributeCallbackSubscriptionBridge
    : public CHIPDoorLockClusterDoorLockSetPinOrIdStatusAttributeCallbackBridge
{
public:
    CHIPDoorLockClusterDoorLockSetPinOrIdStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPDoorLockClusterDoorLockSetPinOrIdStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableDoorLockClusterDoorLockSetPinOrIdStatusAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableDoorLockClusterDoorLockSetPinOrIdStatusAttributeCallback>
{
public:
    CHIPNullableDoorLockClusterDoorLockSetPinOrIdStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableDoorLockClusterDoorLockSetPinOrIdStatusAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                             keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DoorLockSetPinOrIdStatus> & value);
};

class CHIPNullableDoorLockClusterDoorLockSetPinOrIdStatusAttributeCallbackSubscriptionBridge
    : public CHIPNullableDoorLockClusterDoorLockSetPinOrIdStatusAttributeCallbackBridge
{
public:
    CHIPNullableDoorLockClusterDoorLockSetPinOrIdStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableDoorLockClusterDoorLockSetPinOrIdStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPDoorLockClusterDoorLockUserStatusAttributeCallbackBridge
    : public CHIPCallbackBridge<DoorLockClusterDoorLockUserStatusAttributeCallback>
{
public:
    CHIPDoorLockClusterDoorLockUserStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<DoorLockClusterDoorLockUserStatusAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DoorLockUserStatus value);
};

class CHIPDoorLockClusterDoorLockUserStatusAttributeCallbackSubscriptionBridge
    : public CHIPDoorLockClusterDoorLockUserStatusAttributeCallbackBridge
{
public:
    CHIPDoorLockClusterDoorLockUserStatusAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             CHIPActionBlock action,
                                                                             SubscriptionEstablishedHandler establishedHandler) :
        CHIPDoorLockClusterDoorLockUserStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableDoorLockClusterDoorLockUserStatusAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableDoorLockClusterDoorLockUserStatusAttributeCallback>
{
public:
    CHIPNullableDoorLockClusterDoorLockUserStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableDoorLockClusterDoorLockUserStatusAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DoorLockUserStatus> & value);
};

class CHIPNullableDoorLockClusterDoorLockUserStatusAttributeCallbackSubscriptionBridge
    : public CHIPNullableDoorLockClusterDoorLockUserStatusAttributeCallbackBridge
{
public:
    CHIPNullableDoorLockClusterDoorLockUserStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableDoorLockClusterDoorLockUserStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPDoorLockClusterDoorLockUserTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<DoorLockClusterDoorLockUserTypeAttributeCallback>
{
public:
    CHIPDoorLockClusterDoorLockUserTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<DoorLockClusterDoorLockUserTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DoorLockUserType value);
};

class CHIPDoorLockClusterDoorLockUserTypeAttributeCallbackSubscriptionBridge
    : public CHIPDoorLockClusterDoorLockUserTypeAttributeCallbackBridge
{
public:
    CHIPDoorLockClusterDoorLockUserTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           CHIPActionBlock action,
                                                                           SubscriptionEstablishedHandler establishedHandler) :
        CHIPDoorLockClusterDoorLockUserTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableDoorLockClusterDoorLockUserTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableDoorLockClusterDoorLockUserTypeAttributeCallback>
{
public:
    CHIPNullableDoorLockClusterDoorLockUserTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableDoorLockClusterDoorLockUserTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                     keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DoorLockUserType> & value);
};

class CHIPNullableDoorLockClusterDoorLockUserTypeAttributeCallbackSubscriptionBridge
    : public CHIPNullableDoorLockClusterDoorLockUserTypeAttributeCallbackBridge
{
public:
    CHIPNullableDoorLockClusterDoorLockUserTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableDoorLockClusterDoorLockUserTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPPumpConfigurationAndControlClusterPumpControlModeAttributeCallbackBridge
    : public CHIPCallbackBridge<PumpConfigurationAndControlClusterPumpControlModeAttributeCallback>
{
public:
    CHIPPumpConfigurationAndControlClusterPumpControlModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                 CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<PumpConfigurationAndControlClusterPumpControlModeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                               keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::PumpConfigurationAndControl::PumpControlMode value);
};

class CHIPPumpConfigurationAndControlClusterPumpControlModeAttributeCallbackSubscriptionBridge
    : public CHIPPumpConfigurationAndControlClusterPumpControlModeAttributeCallbackBridge
{
public:
    CHIPPumpConfigurationAndControlClusterPumpControlModeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPPumpConfigurationAndControlClusterPumpControlModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullablePumpConfigurationAndControlClusterPumpControlModeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullablePumpConfigurationAndControlClusterPumpControlModeAttributeCallback>
{
public:
    CHIPNullablePumpConfigurationAndControlClusterPumpControlModeAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                         ResponseHandler handler,
                                                                                         CHIPActionBlock action,
                                                                                         bool keepAlive = false) :
        CHIPCallbackBridge<NullablePumpConfigurationAndControlClusterPumpControlModeAttributeCallback>(queue, handler, action,
                                                                                                       OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::PumpConfigurationAndControl::PumpControlMode> & value);
};

class CHIPNullablePumpConfigurationAndControlClusterPumpControlModeAttributeCallbackSubscriptionBridge
    : public CHIPNullablePumpConfigurationAndControlClusterPumpControlModeAttributeCallbackBridge
{
public:
    CHIPNullablePumpConfigurationAndControlClusterPumpControlModeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullablePumpConfigurationAndControlClusterPumpControlModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPPumpConfigurationAndControlClusterPumpOperationModeAttributeCallbackBridge
    : public CHIPCallbackBridge<PumpConfigurationAndControlClusterPumpOperationModeAttributeCallback>
{
public:
    CHIPPumpConfigurationAndControlClusterPumpOperationModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                   CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<PumpConfigurationAndControlClusterPumpOperationModeAttributeCallback>(queue, handler, action,
                                                                                                 OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::PumpConfigurationAndControl::PumpOperationMode value);
};

class CHIPPumpConfigurationAndControlClusterPumpOperationModeAttributeCallbackSubscriptionBridge
    : public CHIPPumpConfigurationAndControlClusterPumpOperationModeAttributeCallbackBridge
{
public:
    CHIPPumpConfigurationAndControlClusterPumpOperationModeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPPumpConfigurationAndControlClusterPumpOperationModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullablePumpConfigurationAndControlClusterPumpOperationModeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullablePumpConfigurationAndControlClusterPumpOperationModeAttributeCallback>
{
public:
    CHIPNullablePumpConfigurationAndControlClusterPumpOperationModeAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                           ResponseHandler handler,
                                                                                           CHIPActionBlock action,
                                                                                           bool keepAlive = false) :
        CHIPCallbackBridge<NullablePumpConfigurationAndControlClusterPumpOperationModeAttributeCallback>(queue, handler, action,
                                                                                                         OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::PumpConfigurationAndControl::PumpOperationMode> & value);
};

class CHIPNullablePumpConfigurationAndControlClusterPumpOperationModeAttributeCallbackSubscriptionBridge
    : public CHIPNullablePumpConfigurationAndControlClusterPumpOperationModeAttributeCallbackBridge
{
public:
    CHIPNullablePumpConfigurationAndControlClusterPumpOperationModeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullablePumpConfigurationAndControlClusterPumpOperationModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPThermostatClusterSetpointAdjustModeAttributeCallbackBridge
    : public CHIPCallbackBridge<ThermostatClusterSetpointAdjustModeAttributeCallback>
{
public:
    CHIPThermostatClusterSetpointAdjustModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<ThermostatClusterSetpointAdjustModeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::Thermostat::SetpointAdjustMode value);
};

class CHIPThermostatClusterSetpointAdjustModeAttributeCallbackSubscriptionBridge
    : public CHIPThermostatClusterSetpointAdjustModeAttributeCallbackBridge
{
public:
    CHIPThermostatClusterSetpointAdjustModeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               CHIPActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        CHIPThermostatClusterSetpointAdjustModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableThermostatClusterSetpointAdjustModeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableThermostatClusterSetpointAdjustModeAttributeCallback>
{
public:
    CHIPNullableThermostatClusterSetpointAdjustModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableThermostatClusterSetpointAdjustModeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                         keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::Thermostat::SetpointAdjustMode> & value);
};

class CHIPNullableThermostatClusterSetpointAdjustModeAttributeCallbackSubscriptionBridge
    : public CHIPNullableThermostatClusterSetpointAdjustModeAttributeCallbackBridge
{
public:
    CHIPNullableThermostatClusterSetpointAdjustModeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableThermostatClusterSetpointAdjustModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPColorControlClusterColorLoopActionAttributeCallbackBridge
    : public CHIPCallbackBridge<ColorControlClusterColorLoopActionAttributeCallback>
{
public:
    CHIPColorControlClusterColorLoopActionAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<ColorControlClusterColorLoopActionAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ColorControl::ColorLoopAction value);
};

class CHIPColorControlClusterColorLoopActionAttributeCallbackSubscriptionBridge
    : public CHIPColorControlClusterColorLoopActionAttributeCallbackBridge
{
public:
    CHIPColorControlClusterColorLoopActionAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              CHIPActionBlock action,
                                                                              SubscriptionEstablishedHandler establishedHandler) :
        CHIPColorControlClusterColorLoopActionAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableColorControlClusterColorLoopActionAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableColorControlClusterColorLoopActionAttributeCallback>
{
public:
    CHIPNullableColorControlClusterColorLoopActionAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableColorControlClusterColorLoopActionAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::ColorControl::ColorLoopAction> & value);
};

class CHIPNullableColorControlClusterColorLoopActionAttributeCallbackSubscriptionBridge
    : public CHIPNullableColorControlClusterColorLoopActionAttributeCallbackBridge
{
public:
    CHIPNullableColorControlClusterColorLoopActionAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableColorControlClusterColorLoopActionAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPColorControlClusterColorLoopDirectionAttributeCallbackBridge
    : public CHIPCallbackBridge<ColorControlClusterColorLoopDirectionAttributeCallback>
{
public:
    CHIPColorControlClusterColorLoopDirectionAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<ColorControlClusterColorLoopDirectionAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                   keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ColorControl::ColorLoopDirection value);
};

class CHIPColorControlClusterColorLoopDirectionAttributeCallbackSubscriptionBridge
    : public CHIPColorControlClusterColorLoopDirectionAttributeCallbackBridge
{
public:
    CHIPColorControlClusterColorLoopDirectionAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPColorControlClusterColorLoopDirectionAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableColorControlClusterColorLoopDirectionAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableColorControlClusterColorLoopDirectionAttributeCallback>
{
public:
    CHIPNullableColorControlClusterColorLoopDirectionAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableColorControlClusterColorLoopDirectionAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                           keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::ColorControl::ColorLoopDirection> & value);
};

class CHIPNullableColorControlClusterColorLoopDirectionAttributeCallbackSubscriptionBridge
    : public CHIPNullableColorControlClusterColorLoopDirectionAttributeCallbackBridge
{
public:
    CHIPNullableColorControlClusterColorLoopDirectionAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableColorControlClusterColorLoopDirectionAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPColorControlClusterColorModeAttributeCallbackBridge
    : public CHIPCallbackBridge<ColorControlClusterColorModeAttributeCallback>
{
public:
    CHIPColorControlClusterColorModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                            bool keepAlive = false) :
        CHIPCallbackBridge<ColorControlClusterColorModeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ColorControl::ColorMode value);
};

class CHIPColorControlClusterColorModeAttributeCallbackSubscriptionBridge
    : public CHIPColorControlClusterColorModeAttributeCallbackBridge
{
public:
    CHIPColorControlClusterColorModeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        CHIPActionBlock action,
                                                                        SubscriptionEstablishedHandler establishedHandler) :
        CHIPColorControlClusterColorModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableColorControlClusterColorModeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableColorControlClusterColorModeAttributeCallback>
{
public:
    CHIPNullableColorControlClusterColorModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableColorControlClusterColorModeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::ColorControl::ColorMode> & value);
};

class CHIPNullableColorControlClusterColorModeAttributeCallbackSubscriptionBridge
    : public CHIPNullableColorControlClusterColorModeAttributeCallbackBridge
{
public:
    CHIPNullableColorControlClusterColorModeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                CHIPActionBlock action,
                                                                                SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableColorControlClusterColorModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPColorControlClusterHueDirectionAttributeCallbackBridge
    : public CHIPCallbackBridge<ColorControlClusterHueDirectionAttributeCallback>
{
public:
    CHIPColorControlClusterHueDirectionAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<ColorControlClusterHueDirectionAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ColorControl::HueDirection value);
};

class CHIPColorControlClusterHueDirectionAttributeCallbackSubscriptionBridge
    : public CHIPColorControlClusterHueDirectionAttributeCallbackBridge
{
public:
    CHIPColorControlClusterHueDirectionAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           CHIPActionBlock action,
                                                                           SubscriptionEstablishedHandler establishedHandler) :
        CHIPColorControlClusterHueDirectionAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableColorControlClusterHueDirectionAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableColorControlClusterHueDirectionAttributeCallback>
{
public:
    CHIPNullableColorControlClusterHueDirectionAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableColorControlClusterHueDirectionAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                     keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::ColorControl::HueDirection> & value);
};

class CHIPNullableColorControlClusterHueDirectionAttributeCallbackSubscriptionBridge
    : public CHIPNullableColorControlClusterHueDirectionAttributeCallbackBridge
{
public:
    CHIPNullableColorControlClusterHueDirectionAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableColorControlClusterHueDirectionAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPColorControlClusterHueMoveModeAttributeCallbackBridge
    : public CHIPCallbackBridge<ColorControlClusterHueMoveModeAttributeCallback>
{
public:
    CHIPColorControlClusterHueMoveModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<ColorControlClusterHueMoveModeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ColorControl::HueMoveMode value);
};

class CHIPColorControlClusterHueMoveModeAttributeCallbackSubscriptionBridge
    : public CHIPColorControlClusterHueMoveModeAttributeCallbackBridge
{
public:
    CHIPColorControlClusterHueMoveModeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          CHIPActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        CHIPColorControlClusterHueMoveModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableColorControlClusterHueMoveModeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableColorControlClusterHueMoveModeAttributeCallback>
{
public:
    CHIPNullableColorControlClusterHueMoveModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableColorControlClusterHueMoveModeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::ColorControl::HueMoveMode> & value);
};

class CHIPNullableColorControlClusterHueMoveModeAttributeCallbackSubscriptionBridge
    : public CHIPNullableColorControlClusterHueMoveModeAttributeCallbackBridge
{
public:
    CHIPNullableColorControlClusterHueMoveModeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableColorControlClusterHueMoveModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPColorControlClusterHueStepModeAttributeCallbackBridge
    : public CHIPCallbackBridge<ColorControlClusterHueStepModeAttributeCallback>
{
public:
    CHIPColorControlClusterHueStepModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<ColorControlClusterHueStepModeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ColorControl::HueStepMode value);
};

class CHIPColorControlClusterHueStepModeAttributeCallbackSubscriptionBridge
    : public CHIPColorControlClusterHueStepModeAttributeCallbackBridge
{
public:
    CHIPColorControlClusterHueStepModeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          CHIPActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        CHIPColorControlClusterHueStepModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableColorControlClusterHueStepModeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableColorControlClusterHueStepModeAttributeCallback>
{
public:
    CHIPNullableColorControlClusterHueStepModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableColorControlClusterHueStepModeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::ColorControl::HueStepMode> & value);
};

class CHIPNullableColorControlClusterHueStepModeAttributeCallbackSubscriptionBridge
    : public CHIPNullableColorControlClusterHueStepModeAttributeCallbackBridge
{
public:
    CHIPNullableColorControlClusterHueStepModeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableColorControlClusterHueStepModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPColorControlClusterSaturationMoveModeAttributeCallbackBridge
    : public CHIPCallbackBridge<ColorControlClusterSaturationMoveModeAttributeCallback>
{
public:
    CHIPColorControlClusterSaturationMoveModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<ColorControlClusterSaturationMoveModeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                   keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ColorControl::SaturationMoveMode value);
};

class CHIPColorControlClusterSaturationMoveModeAttributeCallbackSubscriptionBridge
    : public CHIPColorControlClusterSaturationMoveModeAttributeCallbackBridge
{
public:
    CHIPColorControlClusterSaturationMoveModeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPColorControlClusterSaturationMoveModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableColorControlClusterSaturationMoveModeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableColorControlClusterSaturationMoveModeAttributeCallback>
{
public:
    CHIPNullableColorControlClusterSaturationMoveModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableColorControlClusterSaturationMoveModeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                           keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::ColorControl::SaturationMoveMode> & value);
};

class CHIPNullableColorControlClusterSaturationMoveModeAttributeCallbackSubscriptionBridge
    : public CHIPNullableColorControlClusterSaturationMoveModeAttributeCallbackBridge
{
public:
    CHIPNullableColorControlClusterSaturationMoveModeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableColorControlClusterSaturationMoveModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPColorControlClusterSaturationStepModeAttributeCallbackBridge
    : public CHIPCallbackBridge<ColorControlClusterSaturationStepModeAttributeCallback>
{
public:
    CHIPColorControlClusterSaturationStepModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<ColorControlClusterSaturationStepModeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                   keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ColorControl::SaturationStepMode value);
};

class CHIPColorControlClusterSaturationStepModeAttributeCallbackSubscriptionBridge
    : public CHIPColorControlClusterSaturationStepModeAttributeCallbackBridge
{
public:
    CHIPColorControlClusterSaturationStepModeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPColorControlClusterSaturationStepModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableColorControlClusterSaturationStepModeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableColorControlClusterSaturationStepModeAttributeCallback>
{
public:
    CHIPNullableColorControlClusterSaturationStepModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableColorControlClusterSaturationStepModeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                           keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::ColorControl::SaturationStepMode> & value);
};

class CHIPNullableColorControlClusterSaturationStepModeAttributeCallbackSubscriptionBridge
    : public CHIPNullableColorControlClusterSaturationStepModeAttributeCallbackBridge
{
public:
    CHIPNullableColorControlClusterSaturationStepModeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableColorControlClusterSaturationStepModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPIlluminanceMeasurementClusterLightSensorTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<IlluminanceMeasurementClusterLightSensorTypeAttributeCallback>
{
public:
    CHIPIlluminanceMeasurementClusterLightSensorTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<IlluminanceMeasurementClusterLightSensorTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                          keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::IlluminanceMeasurement::LightSensorType value);
};

class CHIPIlluminanceMeasurementClusterLightSensorTypeAttributeCallbackSubscriptionBridge
    : public CHIPIlluminanceMeasurementClusterLightSensorTypeAttributeCallbackBridge
{
public:
    CHIPIlluminanceMeasurementClusterLightSensorTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPIlluminanceMeasurementClusterLightSensorTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableIlluminanceMeasurementClusterLightSensorTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableIlluminanceMeasurementClusterLightSensorTypeAttributeCallback>
{
public:
    CHIPNullableIlluminanceMeasurementClusterLightSensorTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                    CHIPActionBlock action,
                                                                                    bool keepAlive = false) :
        CHIPCallbackBridge<NullableIlluminanceMeasurementClusterLightSensorTypeAttributeCallback>(queue, handler, action,
                                                                                                  OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::IlluminanceMeasurement::LightSensorType> & value);
};

class CHIPNullableIlluminanceMeasurementClusterLightSensorTypeAttributeCallbackSubscriptionBridge
    : public CHIPNullableIlluminanceMeasurementClusterLightSensorTypeAttributeCallbackBridge
{
public:
    CHIPNullableIlluminanceMeasurementClusterLightSensorTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableIlluminanceMeasurementClusterLightSensorTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPIasZoneClusterIasEnrollResponseCodeAttributeCallbackBridge
    : public CHIPCallbackBridge<IasZoneClusterIasEnrollResponseCodeAttributeCallback>
{
public:
    CHIPIasZoneClusterIasEnrollResponseCodeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<IasZoneClusterIasEnrollResponseCodeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::IasZone::IasEnrollResponseCode value);
};

class CHIPIasZoneClusterIasEnrollResponseCodeAttributeCallbackSubscriptionBridge
    : public CHIPIasZoneClusterIasEnrollResponseCodeAttributeCallbackBridge
{
public:
    CHIPIasZoneClusterIasEnrollResponseCodeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               CHIPActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        CHIPIasZoneClusterIasEnrollResponseCodeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableIasZoneClusterIasEnrollResponseCodeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableIasZoneClusterIasEnrollResponseCodeAttributeCallback>
{
public:
    CHIPNullableIasZoneClusterIasEnrollResponseCodeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableIasZoneClusterIasEnrollResponseCodeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                         keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::IasZone::IasEnrollResponseCode> & value);
};

class CHIPNullableIasZoneClusterIasEnrollResponseCodeAttributeCallbackSubscriptionBridge
    : public CHIPNullableIasZoneClusterIasEnrollResponseCodeAttributeCallbackBridge
{
public:
    CHIPNullableIasZoneClusterIasEnrollResponseCodeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableIasZoneClusterIasEnrollResponseCodeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPIasZoneClusterIasZoneTypeAttributeCallbackBridge : public CHIPCallbackBridge<IasZoneClusterIasZoneTypeAttributeCallback>
{
public:
    CHIPIasZoneClusterIasZoneTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                         bool keepAlive = false) :
        CHIPCallbackBridge<IasZoneClusterIasZoneTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::IasZone::IasZoneType value);
};

class CHIPIasZoneClusterIasZoneTypeAttributeCallbackSubscriptionBridge : public CHIPIasZoneClusterIasZoneTypeAttributeCallbackBridge
{
public:
    CHIPIasZoneClusterIasZoneTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     CHIPActionBlock action,
                                                                     SubscriptionEstablishedHandler establishedHandler) :
        CHIPIasZoneClusterIasZoneTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableIasZoneClusterIasZoneTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableIasZoneClusterIasZoneTypeAttributeCallback>
{
public:
    CHIPNullableIasZoneClusterIasZoneTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableIasZoneClusterIasZoneTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::IasZone::IasZoneType> & value);
};

class CHIPNullableIasZoneClusterIasZoneTypeAttributeCallbackSubscriptionBridge
    : public CHIPNullableIasZoneClusterIasZoneTypeAttributeCallbackBridge
{
public:
    CHIPNullableIasZoneClusterIasZoneTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             CHIPActionBlock action,
                                                                             SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableIasZoneClusterIasZoneTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPIasAceClusterIasAceAlarmStatusAttributeCallbackBridge
    : public CHIPCallbackBridge<IasAceClusterIasAceAlarmStatusAttributeCallback>
{
public:
    CHIPIasAceClusterIasAceAlarmStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<IasAceClusterIasAceAlarmStatusAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::IasAce::IasAceAlarmStatus value);
};

class CHIPIasAceClusterIasAceAlarmStatusAttributeCallbackSubscriptionBridge
    : public CHIPIasAceClusterIasAceAlarmStatusAttributeCallbackBridge
{
public:
    CHIPIasAceClusterIasAceAlarmStatusAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          CHIPActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        CHIPIasAceClusterIasAceAlarmStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableIasAceClusterIasAceAlarmStatusAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableIasAceClusterIasAceAlarmStatusAttributeCallback>
{
public:
    CHIPNullableIasAceClusterIasAceAlarmStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableIasAceClusterIasAceAlarmStatusAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::IasAce::IasAceAlarmStatus> & value);
};

class CHIPNullableIasAceClusterIasAceAlarmStatusAttributeCallbackSubscriptionBridge
    : public CHIPNullableIasAceClusterIasAceAlarmStatusAttributeCallbackBridge
{
public:
    CHIPNullableIasAceClusterIasAceAlarmStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableIasAceClusterIasAceAlarmStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPIasAceClusterIasAceArmModeAttributeCallbackBridge : public CHIPCallbackBridge<IasAceClusterIasAceArmModeAttributeCallback>
{
public:
    CHIPIasAceClusterIasAceArmModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                          bool keepAlive = false) :
        CHIPCallbackBridge<IasAceClusterIasAceArmModeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::IasAce::IasAceArmMode value);
};

class CHIPIasAceClusterIasAceArmModeAttributeCallbackSubscriptionBridge
    : public CHIPIasAceClusterIasAceArmModeAttributeCallbackBridge
{
public:
    CHIPIasAceClusterIasAceArmModeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      CHIPActionBlock action,
                                                                      SubscriptionEstablishedHandler establishedHandler) :
        CHIPIasAceClusterIasAceArmModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableIasAceClusterIasAceArmModeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableIasAceClusterIasAceArmModeAttributeCallback>
{
public:
    CHIPNullableIasAceClusterIasAceArmModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableIasAceClusterIasAceArmModeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::IasAce::IasAceArmMode> & value);
};

class CHIPNullableIasAceClusterIasAceArmModeAttributeCallbackSubscriptionBridge
    : public CHIPNullableIasAceClusterIasAceArmModeAttributeCallbackBridge
{
public:
    CHIPNullableIasAceClusterIasAceArmModeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              CHIPActionBlock action,
                                                                              SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableIasAceClusterIasAceArmModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPIasAceClusterIasAceArmNotificationAttributeCallbackBridge
    : public CHIPCallbackBridge<IasAceClusterIasAceArmNotificationAttributeCallback>
{
public:
    CHIPIasAceClusterIasAceArmNotificationAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<IasAceClusterIasAceArmNotificationAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::IasAce::IasAceArmNotification value);
};

class CHIPIasAceClusterIasAceArmNotificationAttributeCallbackSubscriptionBridge
    : public CHIPIasAceClusterIasAceArmNotificationAttributeCallbackBridge
{
public:
    CHIPIasAceClusterIasAceArmNotificationAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              CHIPActionBlock action,
                                                                              SubscriptionEstablishedHandler establishedHandler) :
        CHIPIasAceClusterIasAceArmNotificationAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableIasAceClusterIasAceArmNotificationAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableIasAceClusterIasAceArmNotificationAttributeCallback>
{
public:
    CHIPNullableIasAceClusterIasAceArmNotificationAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableIasAceClusterIasAceArmNotificationAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::IasAce::IasAceArmNotification> & value);
};

class CHIPNullableIasAceClusterIasAceArmNotificationAttributeCallbackSubscriptionBridge
    : public CHIPNullableIasAceClusterIasAceArmNotificationAttributeCallbackBridge
{
public:
    CHIPNullableIasAceClusterIasAceArmNotificationAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableIasAceClusterIasAceArmNotificationAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPIasAceClusterIasAceAudibleNotificationAttributeCallbackBridge
    : public CHIPCallbackBridge<IasAceClusterIasAceAudibleNotificationAttributeCallback>
{
public:
    CHIPIasAceClusterIasAceAudibleNotificationAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<IasAceClusterIasAceAudibleNotificationAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::IasAce::IasAceAudibleNotification value);
};

class CHIPIasAceClusterIasAceAudibleNotificationAttributeCallbackSubscriptionBridge
    : public CHIPIasAceClusterIasAceAudibleNotificationAttributeCallbackBridge
{
public:
    CHIPIasAceClusterIasAceAudibleNotificationAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPIasAceClusterIasAceAudibleNotificationAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableIasAceClusterIasAceAudibleNotificationAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableIasAceClusterIasAceAudibleNotificationAttributeCallback>
{
public:
    CHIPNullableIasAceClusterIasAceAudibleNotificationAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableIasAceClusterIasAceAudibleNotificationAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                            keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::IasAce::IasAceAudibleNotification> & value);
};

class CHIPNullableIasAceClusterIasAceAudibleNotificationAttributeCallbackSubscriptionBridge
    : public CHIPNullableIasAceClusterIasAceAudibleNotificationAttributeCallbackBridge
{
public:
    CHIPNullableIasAceClusterIasAceAudibleNotificationAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableIasAceClusterIasAceAudibleNotificationAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPIasAceClusterIasAceBypassResultAttributeCallbackBridge
    : public CHIPCallbackBridge<IasAceClusterIasAceBypassResultAttributeCallback>
{
public:
    CHIPIasAceClusterIasAceBypassResultAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<IasAceClusterIasAceBypassResultAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::IasAce::IasAceBypassResult value);
};

class CHIPIasAceClusterIasAceBypassResultAttributeCallbackSubscriptionBridge
    : public CHIPIasAceClusterIasAceBypassResultAttributeCallbackBridge
{
public:
    CHIPIasAceClusterIasAceBypassResultAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           CHIPActionBlock action,
                                                                           SubscriptionEstablishedHandler establishedHandler) :
        CHIPIasAceClusterIasAceBypassResultAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableIasAceClusterIasAceBypassResultAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableIasAceClusterIasAceBypassResultAttributeCallback>
{
public:
    CHIPNullableIasAceClusterIasAceBypassResultAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableIasAceClusterIasAceBypassResultAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                     keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::IasAce::IasAceBypassResult> & value);
};

class CHIPNullableIasAceClusterIasAceBypassResultAttributeCallbackSubscriptionBridge
    : public CHIPNullableIasAceClusterIasAceBypassResultAttributeCallbackBridge
{
public:
    CHIPNullableIasAceClusterIasAceBypassResultAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableIasAceClusterIasAceBypassResultAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPIasAceClusterIasAcePanelStatusAttributeCallbackBridge
    : public CHIPCallbackBridge<IasAceClusterIasAcePanelStatusAttributeCallback>
{
public:
    CHIPIasAceClusterIasAcePanelStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<IasAceClusterIasAcePanelStatusAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::IasAce::IasAcePanelStatus value);
};

class CHIPIasAceClusterIasAcePanelStatusAttributeCallbackSubscriptionBridge
    : public CHIPIasAceClusterIasAcePanelStatusAttributeCallbackBridge
{
public:
    CHIPIasAceClusterIasAcePanelStatusAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          CHIPActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        CHIPIasAceClusterIasAcePanelStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableIasAceClusterIasAcePanelStatusAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableIasAceClusterIasAcePanelStatusAttributeCallback>
{
public:
    CHIPNullableIasAceClusterIasAcePanelStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableIasAceClusterIasAcePanelStatusAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::IasAce::IasAcePanelStatus> & value);
};

class CHIPNullableIasAceClusterIasAcePanelStatusAttributeCallbackSubscriptionBridge
    : public CHIPNullableIasAceClusterIasAcePanelStatusAttributeCallbackBridge
{
public:
    CHIPNullableIasAceClusterIasAcePanelStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableIasAceClusterIasAcePanelStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPIasAceClusterIasZoneTypeAttributeCallbackBridge : public CHIPCallbackBridge<IasAceClusterIasZoneTypeAttributeCallback>
{
public:
    CHIPIasAceClusterIasZoneTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                        bool keepAlive = false) :
        CHIPCallbackBridge<IasAceClusterIasZoneTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::IasAce::IasZoneType value);
};

class CHIPIasAceClusterIasZoneTypeAttributeCallbackSubscriptionBridge : public CHIPIasAceClusterIasZoneTypeAttributeCallbackBridge
{
public:
    CHIPIasAceClusterIasZoneTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    CHIPActionBlock action,
                                                                    SubscriptionEstablishedHandler establishedHandler) :
        CHIPIasAceClusterIasZoneTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableIasAceClusterIasZoneTypeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableIasAceClusterIasZoneTypeAttributeCallback>
{
public:
    CHIPNullableIasAceClusterIasZoneTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableIasAceClusterIasZoneTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::Nullable<chip::app::Clusters::IasAce::IasZoneType> & value);
};

class CHIPNullableIasAceClusterIasZoneTypeAttributeCallbackSubscriptionBridge
    : public CHIPNullableIasAceClusterIasZoneTypeAttributeCallbackBridge
{
public:
    CHIPNullableIasAceClusterIasZoneTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            CHIPActionBlock action,
                                                                            SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableIasAceClusterIasZoneTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPChannelClusterErrorTypeEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<ChannelClusterErrorTypeEnumAttributeCallback>
{
public:
    CHIPChannelClusterErrorTypeEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                           bool keepAlive = false) :
        CHIPCallbackBridge<ChannelClusterErrorTypeEnumAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::Channel::ErrorTypeEnum value);
};

class CHIPChannelClusterErrorTypeEnumAttributeCallbackSubscriptionBridge
    : public CHIPChannelClusterErrorTypeEnumAttributeCallbackBridge
{
public:
    CHIPChannelClusterErrorTypeEnumAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       CHIPActionBlock action,
                                                                       SubscriptionEstablishedHandler establishedHandler) :
        CHIPChannelClusterErrorTypeEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableChannelClusterErrorTypeEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableChannelClusterErrorTypeEnumAttributeCallback>
{
public:
    CHIPNullableChannelClusterErrorTypeEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableChannelClusterErrorTypeEnumAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::Channel::ErrorTypeEnum> & value);
};

class CHIPNullableChannelClusterErrorTypeEnumAttributeCallbackSubscriptionBridge
    : public CHIPNullableChannelClusterErrorTypeEnumAttributeCallbackBridge
{
public:
    CHIPNullableChannelClusterErrorTypeEnumAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               CHIPActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableChannelClusterErrorTypeEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPChannelClusterLineupInfoTypeEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<ChannelClusterLineupInfoTypeEnumAttributeCallback>
{
public:
    CHIPChannelClusterLineupInfoTypeEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<ChannelClusterLineupInfoTypeEnumAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::Channel::LineupInfoTypeEnum value);
};

class CHIPChannelClusterLineupInfoTypeEnumAttributeCallbackSubscriptionBridge
    : public CHIPChannelClusterLineupInfoTypeEnumAttributeCallbackBridge
{
public:
    CHIPChannelClusterLineupInfoTypeEnumAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            CHIPActionBlock action,
                                                                            SubscriptionEstablishedHandler establishedHandler) :
        CHIPChannelClusterLineupInfoTypeEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableChannelClusterLineupInfoTypeEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableChannelClusterLineupInfoTypeEnumAttributeCallback>
{
public:
    CHIPNullableChannelClusterLineupInfoTypeEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableChannelClusterLineupInfoTypeEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                      keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::Channel::LineupInfoTypeEnum> & value);
};

class CHIPNullableChannelClusterLineupInfoTypeEnumAttributeCallbackSubscriptionBridge
    : public CHIPNullableChannelClusterLineupInfoTypeEnumAttributeCallbackBridge
{
public:
    CHIPNullableChannelClusterLineupInfoTypeEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableChannelClusterLineupInfoTypeEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPTargetNavigatorClusterStatusEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<TargetNavigatorClusterStatusEnumAttributeCallback>
{
public:
    CHIPTargetNavigatorClusterStatusEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<TargetNavigatorClusterStatusEnumAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::TargetNavigator::StatusEnum value);
};

class CHIPTargetNavigatorClusterStatusEnumAttributeCallbackSubscriptionBridge
    : public CHIPTargetNavigatorClusterStatusEnumAttributeCallbackBridge
{
public:
    CHIPTargetNavigatorClusterStatusEnumAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            CHIPActionBlock action,
                                                                            SubscriptionEstablishedHandler establishedHandler) :
        CHIPTargetNavigatorClusterStatusEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableTargetNavigatorClusterStatusEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableTargetNavigatorClusterStatusEnumAttributeCallback>
{
public:
    CHIPNullableTargetNavigatorClusterStatusEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableTargetNavigatorClusterStatusEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                      keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::TargetNavigator::StatusEnum> & value);
};

class CHIPNullableTargetNavigatorClusterStatusEnumAttributeCallbackSubscriptionBridge
    : public CHIPNullableTargetNavigatorClusterStatusEnumAttributeCallbackBridge
{
public:
    CHIPNullableTargetNavigatorClusterStatusEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableTargetNavigatorClusterStatusEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPMediaPlaybackClusterPlaybackStateEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<MediaPlaybackClusterPlaybackStateEnumAttributeCallback>
{
public:
    CHIPMediaPlaybackClusterPlaybackStateEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<MediaPlaybackClusterPlaybackStateEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                   keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::MediaPlayback::PlaybackStateEnum value);
};

class CHIPMediaPlaybackClusterPlaybackStateEnumAttributeCallbackSubscriptionBridge
    : public CHIPMediaPlaybackClusterPlaybackStateEnumAttributeCallbackBridge
{
public:
    CHIPMediaPlaybackClusterPlaybackStateEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPMediaPlaybackClusterPlaybackStateEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableMediaPlaybackClusterPlaybackStateEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableMediaPlaybackClusterPlaybackStateEnumAttributeCallback>
{
public:
    CHIPNullableMediaPlaybackClusterPlaybackStateEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableMediaPlaybackClusterPlaybackStateEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                           keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::MediaPlayback::PlaybackStateEnum> & value);
};

class CHIPNullableMediaPlaybackClusterPlaybackStateEnumAttributeCallbackSubscriptionBridge
    : public CHIPNullableMediaPlaybackClusterPlaybackStateEnumAttributeCallbackBridge
{
public:
    CHIPNullableMediaPlaybackClusterPlaybackStateEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableMediaPlaybackClusterPlaybackStateEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPMediaPlaybackClusterStatusEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<MediaPlaybackClusterStatusEnumAttributeCallback>
{
public:
    CHIPMediaPlaybackClusterStatusEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<MediaPlaybackClusterStatusEnumAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::MediaPlayback::StatusEnum value);
};

class CHIPMediaPlaybackClusterStatusEnumAttributeCallbackSubscriptionBridge
    : public CHIPMediaPlaybackClusterStatusEnumAttributeCallbackBridge
{
public:
    CHIPMediaPlaybackClusterStatusEnumAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          CHIPActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        CHIPMediaPlaybackClusterStatusEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableMediaPlaybackClusterStatusEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableMediaPlaybackClusterStatusEnumAttributeCallback>
{
public:
    CHIPNullableMediaPlaybackClusterStatusEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableMediaPlaybackClusterStatusEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::MediaPlayback::StatusEnum> & value);
};

class CHIPNullableMediaPlaybackClusterStatusEnumAttributeCallbackSubscriptionBridge
    : public CHIPNullableMediaPlaybackClusterStatusEnumAttributeCallbackBridge
{
public:
    CHIPNullableMediaPlaybackClusterStatusEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableMediaPlaybackClusterStatusEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPMediaInputClusterInputTypeEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<MediaInputClusterInputTypeEnumAttributeCallback>
{
public:
    CHIPMediaInputClusterInputTypeEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<MediaInputClusterInputTypeEnumAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::MediaInput::InputTypeEnum value);
};

class CHIPMediaInputClusterInputTypeEnumAttributeCallbackSubscriptionBridge
    : public CHIPMediaInputClusterInputTypeEnumAttributeCallbackBridge
{
public:
    CHIPMediaInputClusterInputTypeEnumAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          CHIPActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        CHIPMediaInputClusterInputTypeEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableMediaInputClusterInputTypeEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableMediaInputClusterInputTypeEnumAttributeCallback>
{
public:
    CHIPNullableMediaInputClusterInputTypeEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableMediaInputClusterInputTypeEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::MediaInput::InputTypeEnum> & value);
};

class CHIPNullableMediaInputClusterInputTypeEnumAttributeCallbackSubscriptionBridge
    : public CHIPNullableMediaInputClusterInputTypeEnumAttributeCallbackBridge
{
public:
    CHIPNullableMediaInputClusterInputTypeEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableMediaInputClusterInputTypeEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPKeypadInputClusterCecKeyCodeAttributeCallbackBridge
    : public CHIPCallbackBridge<KeypadInputClusterCecKeyCodeAttributeCallback>
{
public:
    CHIPKeypadInputClusterCecKeyCodeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                            bool keepAlive = false) :
        CHIPCallbackBridge<KeypadInputClusterCecKeyCodeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::KeypadInput::CecKeyCode value);
};

class CHIPKeypadInputClusterCecKeyCodeAttributeCallbackSubscriptionBridge
    : public CHIPKeypadInputClusterCecKeyCodeAttributeCallbackBridge
{
public:
    CHIPKeypadInputClusterCecKeyCodeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        CHIPActionBlock action,
                                                                        SubscriptionEstablishedHandler establishedHandler) :
        CHIPKeypadInputClusterCecKeyCodeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableKeypadInputClusterCecKeyCodeAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableKeypadInputClusterCecKeyCodeAttributeCallback>
{
public:
    CHIPNullableKeypadInputClusterCecKeyCodeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableKeypadInputClusterCecKeyCodeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::KeypadInput::CecKeyCode> & value);
};

class CHIPNullableKeypadInputClusterCecKeyCodeAttributeCallbackSubscriptionBridge
    : public CHIPNullableKeypadInputClusterCecKeyCodeAttributeCallbackBridge
{
public:
    CHIPNullableKeypadInputClusterCecKeyCodeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                CHIPActionBlock action,
                                                                                SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableKeypadInputClusterCecKeyCodeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPKeypadInputClusterStatusEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<KeypadInputClusterStatusEnumAttributeCallback>
{
public:
    CHIPKeypadInputClusterStatusEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                            bool keepAlive = false) :
        CHIPCallbackBridge<KeypadInputClusterStatusEnumAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::KeypadInput::StatusEnum value);
};

class CHIPKeypadInputClusterStatusEnumAttributeCallbackSubscriptionBridge
    : public CHIPKeypadInputClusterStatusEnumAttributeCallbackBridge
{
public:
    CHIPKeypadInputClusterStatusEnumAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        CHIPActionBlock action,
                                                                        SubscriptionEstablishedHandler establishedHandler) :
        CHIPKeypadInputClusterStatusEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableKeypadInputClusterStatusEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableKeypadInputClusterStatusEnumAttributeCallback>
{
public:
    CHIPNullableKeypadInputClusterStatusEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableKeypadInputClusterStatusEnumAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::KeypadInput::StatusEnum> & value);
};

class CHIPNullableKeypadInputClusterStatusEnumAttributeCallbackSubscriptionBridge
    : public CHIPNullableKeypadInputClusterStatusEnumAttributeCallbackBridge
{
public:
    CHIPNullableKeypadInputClusterStatusEnumAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                CHIPActionBlock action,
                                                                                SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableKeypadInputClusterStatusEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPContentLauncherClusterMetricTypeEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<ContentLauncherClusterMetricTypeEnumAttributeCallback>
{
public:
    CHIPContentLauncherClusterMetricTypeEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<ContentLauncherClusterMetricTypeEnumAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ContentLauncher::MetricTypeEnum value);
};

class CHIPContentLauncherClusterMetricTypeEnumAttributeCallbackSubscriptionBridge
    : public CHIPContentLauncherClusterMetricTypeEnumAttributeCallbackBridge
{
public:
    CHIPContentLauncherClusterMetricTypeEnumAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                CHIPActionBlock action,
                                                                                SubscriptionEstablishedHandler establishedHandler) :
        CHIPContentLauncherClusterMetricTypeEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableContentLauncherClusterMetricTypeEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableContentLauncherClusterMetricTypeEnumAttributeCallback>
{
public:
    CHIPNullableContentLauncherClusterMetricTypeEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableContentLauncherClusterMetricTypeEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                          keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::ContentLauncher::MetricTypeEnum> & value);
};

class CHIPNullableContentLauncherClusterMetricTypeEnumAttributeCallbackSubscriptionBridge
    : public CHIPNullableContentLauncherClusterMetricTypeEnumAttributeCallbackBridge
{
public:
    CHIPNullableContentLauncherClusterMetricTypeEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableContentLauncherClusterMetricTypeEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPContentLauncherClusterParameterEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<ContentLauncherClusterParameterEnumAttributeCallback>
{
public:
    CHIPContentLauncherClusterParameterEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<ContentLauncherClusterParameterEnumAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ContentLauncher::ParameterEnum value);
};

class CHIPContentLauncherClusterParameterEnumAttributeCallbackSubscriptionBridge
    : public CHIPContentLauncherClusterParameterEnumAttributeCallbackBridge
{
public:
    CHIPContentLauncherClusterParameterEnumAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               CHIPActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        CHIPContentLauncherClusterParameterEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableContentLauncherClusterParameterEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableContentLauncherClusterParameterEnumAttributeCallback>
{
public:
    CHIPNullableContentLauncherClusterParameterEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableContentLauncherClusterParameterEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                         keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::ContentLauncher::ParameterEnum> & value);
};

class CHIPNullableContentLauncherClusterParameterEnumAttributeCallbackSubscriptionBridge
    : public CHIPNullableContentLauncherClusterParameterEnumAttributeCallbackBridge
{
public:
    CHIPNullableContentLauncherClusterParameterEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableContentLauncherClusterParameterEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPContentLauncherClusterStatusEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<ContentLauncherClusterStatusEnumAttributeCallback>
{
public:
    CHIPContentLauncherClusterStatusEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<ContentLauncherClusterStatusEnumAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ContentLauncher::StatusEnum value);
};

class CHIPContentLauncherClusterStatusEnumAttributeCallbackSubscriptionBridge
    : public CHIPContentLauncherClusterStatusEnumAttributeCallbackBridge
{
public:
    CHIPContentLauncherClusterStatusEnumAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            CHIPActionBlock action,
                                                                            SubscriptionEstablishedHandler establishedHandler) :
        CHIPContentLauncherClusterStatusEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableContentLauncherClusterStatusEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableContentLauncherClusterStatusEnumAttributeCallback>
{
public:
    CHIPNullableContentLauncherClusterStatusEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableContentLauncherClusterStatusEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                      keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::ContentLauncher::StatusEnum> & value);
};

class CHIPNullableContentLauncherClusterStatusEnumAttributeCallbackSubscriptionBridge
    : public CHIPNullableContentLauncherClusterStatusEnumAttributeCallbackBridge
{
public:
    CHIPNullableContentLauncherClusterStatusEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableContentLauncherClusterStatusEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPAudioOutputClusterOutputTypeEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<AudioOutputClusterOutputTypeEnumAttributeCallback>
{
public:
    CHIPAudioOutputClusterOutputTypeEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<AudioOutputClusterOutputTypeEnumAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::AudioOutput::OutputTypeEnum value);
};

class CHIPAudioOutputClusterOutputTypeEnumAttributeCallbackSubscriptionBridge
    : public CHIPAudioOutputClusterOutputTypeEnumAttributeCallbackBridge
{
public:
    CHIPAudioOutputClusterOutputTypeEnumAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            CHIPActionBlock action,
                                                                            SubscriptionEstablishedHandler establishedHandler) :
        CHIPAudioOutputClusterOutputTypeEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableAudioOutputClusterOutputTypeEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableAudioOutputClusterOutputTypeEnumAttributeCallback>
{
public:
    CHIPNullableAudioOutputClusterOutputTypeEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableAudioOutputClusterOutputTypeEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                      keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::AudioOutput::OutputTypeEnum> & value);
};

class CHIPNullableAudioOutputClusterOutputTypeEnumAttributeCallbackSubscriptionBridge
    : public CHIPNullableAudioOutputClusterOutputTypeEnumAttributeCallbackBridge
{
public:
    CHIPNullableAudioOutputClusterOutputTypeEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableAudioOutputClusterOutputTypeEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPApplicationLauncherClusterStatusEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<ApplicationLauncherClusterStatusEnumAttributeCallback>
{
public:
    CHIPApplicationLauncherClusterStatusEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<ApplicationLauncherClusterStatusEnumAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ApplicationLauncher::StatusEnum value);
};

class CHIPApplicationLauncherClusterStatusEnumAttributeCallbackSubscriptionBridge
    : public CHIPApplicationLauncherClusterStatusEnumAttributeCallbackBridge
{
public:
    CHIPApplicationLauncherClusterStatusEnumAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                CHIPActionBlock action,
                                                                                SubscriptionEstablishedHandler establishedHandler) :
        CHIPApplicationLauncherClusterStatusEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableApplicationLauncherClusterStatusEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableApplicationLauncherClusterStatusEnumAttributeCallback>
{
public:
    CHIPNullableApplicationLauncherClusterStatusEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableApplicationLauncherClusterStatusEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                          keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::ApplicationLauncher::StatusEnum> & value);
};

class CHIPNullableApplicationLauncherClusterStatusEnumAttributeCallbackSubscriptionBridge
    : public CHIPNullableApplicationLauncherClusterStatusEnumAttributeCallbackBridge
{
public:
    CHIPNullableApplicationLauncherClusterStatusEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableApplicationLauncherClusterStatusEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPApplicationBasicClusterApplicationStatusEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<ApplicationBasicClusterApplicationStatusEnumAttributeCallback>
{
public:
    CHIPApplicationBasicClusterApplicationStatusEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<ApplicationBasicClusterApplicationStatusEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                          keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ApplicationBasic::ApplicationStatusEnum value);
};

class CHIPApplicationBasicClusterApplicationStatusEnumAttributeCallbackSubscriptionBridge
    : public CHIPApplicationBasicClusterApplicationStatusEnumAttributeCallbackBridge
{
public:
    CHIPApplicationBasicClusterApplicationStatusEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPApplicationBasicClusterApplicationStatusEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableApplicationBasicClusterApplicationStatusEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableApplicationBasicClusterApplicationStatusEnumAttributeCallback>
{
public:
    CHIPNullableApplicationBasicClusterApplicationStatusEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                    CHIPActionBlock action,
                                                                                    bool keepAlive = false) :
        CHIPCallbackBridge<NullableApplicationBasicClusterApplicationStatusEnumAttributeCallback>(queue, handler, action,
                                                                                                  OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::ApplicationBasic::ApplicationStatusEnum> & value);
};

class CHIPNullableApplicationBasicClusterApplicationStatusEnumAttributeCallbackSubscriptionBridge
    : public CHIPNullableApplicationBasicClusterApplicationStatusEnumAttributeCallbackBridge
{
public:
    CHIPNullableApplicationBasicClusterApplicationStatusEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableApplicationBasicClusterApplicationStatusEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPTestClusterClusterSimpleEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<TestClusterClusterSimpleEnumAttributeCallback>
{
public:
    CHIPTestClusterClusterSimpleEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                            bool keepAlive = false) :
        CHIPCallbackBridge<TestClusterClusterSimpleEnumAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::TestCluster::SimpleEnum value);
};

class CHIPTestClusterClusterSimpleEnumAttributeCallbackSubscriptionBridge
    : public CHIPTestClusterClusterSimpleEnumAttributeCallbackBridge
{
public:
    CHIPTestClusterClusterSimpleEnumAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        CHIPActionBlock action,
                                                                        SubscriptionEstablishedHandler establishedHandler) :
        CHIPTestClusterClusterSimpleEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableTestClusterClusterSimpleEnumAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableTestClusterClusterSimpleEnumAttributeCallback>
{
public:
    CHIPNullableTestClusterClusterSimpleEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableTestClusterClusterSimpleEnumAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::TestCluster::SimpleEnum> & value);
};

class CHIPNullableTestClusterClusterSimpleEnumAttributeCallbackSubscriptionBridge
    : public CHIPNullableTestClusterClusterSimpleEnumAttributeCallbackBridge
{
public:
    CHIPNullableTestClusterClusterSimpleEnumAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                CHIPActionBlock action,
                                                                                SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableTestClusterClusterSimpleEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPMessagingClusterEventIdAttributeCallbackBridge : public CHIPCallbackBridge<MessagingClusterEventIdAttributeCallback>
{
public:
    CHIPMessagingClusterEventIdAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
                                                       bool keepAlive = false) :
        CHIPCallbackBridge<MessagingClusterEventIdAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::Messaging::EventId value);
};

class CHIPMessagingClusterEventIdAttributeCallbackSubscriptionBridge : public CHIPMessagingClusterEventIdAttributeCallbackBridge
{
public:
    CHIPMessagingClusterEventIdAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   CHIPActionBlock action,
                                                                   SubscriptionEstablishedHandler establishedHandler) :
        CHIPMessagingClusterEventIdAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableMessagingClusterEventIdAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableMessagingClusterEventIdAttributeCallback>
{
public:
    CHIPNullableMessagingClusterEventIdAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableMessagingClusterEventIdAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::Nullable<chip::app::Clusters::Messaging::EventId> & value);
};

class CHIPNullableMessagingClusterEventIdAttributeCallbackSubscriptionBridge
    : public CHIPNullableMessagingClusterEventIdAttributeCallbackBridge
{
public:
    CHIPNullableMessagingClusterEventIdAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           CHIPActionBlock action,
                                                                           SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableMessagingClusterEventIdAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPMessagingClusterMessagingControlConfirmationAttributeCallbackBridge
    : public CHIPCallbackBridge<MessagingClusterMessagingControlConfirmationAttributeCallback>
{
public:
    CHIPMessagingClusterMessagingControlConfirmationAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<MessagingClusterMessagingControlConfirmationAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                          keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::Messaging::MessagingControlConfirmation value);
};

class CHIPMessagingClusterMessagingControlConfirmationAttributeCallbackSubscriptionBridge
    : public CHIPMessagingClusterMessagingControlConfirmationAttributeCallbackBridge
{
public:
    CHIPMessagingClusterMessagingControlConfirmationAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPMessagingClusterMessagingControlConfirmationAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableMessagingClusterMessagingControlConfirmationAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableMessagingClusterMessagingControlConfirmationAttributeCallback>
{
public:
    CHIPNullableMessagingClusterMessagingControlConfirmationAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                    CHIPActionBlock action,
                                                                                    bool keepAlive = false) :
        CHIPCallbackBridge<NullableMessagingClusterMessagingControlConfirmationAttributeCallback>(queue, handler, action,
                                                                                                  OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::Messaging::MessagingControlConfirmation> & value);
};

class CHIPNullableMessagingClusterMessagingControlConfirmationAttributeCallbackSubscriptionBridge
    : public CHIPNullableMessagingClusterMessagingControlConfirmationAttributeCallbackBridge
{
public:
    CHIPNullableMessagingClusterMessagingControlConfirmationAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableMessagingClusterMessagingControlConfirmationAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPMessagingClusterMessagingControlEnhancedConfirmationAttributeCallbackBridge
    : public CHIPCallbackBridge<MessagingClusterMessagingControlEnhancedConfirmationAttributeCallback>
{
public:
    CHIPMessagingClusterMessagingControlEnhancedConfirmationAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                    CHIPActionBlock action,
                                                                                    bool keepAlive = false) :
        CHIPCallbackBridge<MessagingClusterMessagingControlEnhancedConfirmationAttributeCallback>(queue, handler, action,
                                                                                                  OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::Messaging::MessagingControlEnhancedConfirmation value);
};

class CHIPMessagingClusterMessagingControlEnhancedConfirmationAttributeCallbackSubscriptionBridge
    : public CHIPMessagingClusterMessagingControlEnhancedConfirmationAttributeCallbackBridge
{
public:
    CHIPMessagingClusterMessagingControlEnhancedConfirmationAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPMessagingClusterMessagingControlEnhancedConfirmationAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableMessagingClusterMessagingControlEnhancedConfirmationAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableMessagingClusterMessagingControlEnhancedConfirmationAttributeCallback>
{
public:
    CHIPNullableMessagingClusterMessagingControlEnhancedConfirmationAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                            ResponseHandler handler,
                                                                                            CHIPActionBlock action,
                                                                                            bool keepAlive = false) :
        CHIPCallbackBridge<NullableMessagingClusterMessagingControlEnhancedConfirmationAttributeCallback>(queue, handler, action,
                                                                                                          OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::Messaging::MessagingControlEnhancedConfirmation> & value);
};

class CHIPNullableMessagingClusterMessagingControlEnhancedConfirmationAttributeCallbackSubscriptionBridge
    : public CHIPNullableMessagingClusterMessagingControlEnhancedConfirmationAttributeCallbackBridge
{
public:
    CHIPNullableMessagingClusterMessagingControlEnhancedConfirmationAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableMessagingClusterMessagingControlEnhancedConfirmationAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPMessagingClusterMessagingControlImportanceAttributeCallbackBridge
    : public CHIPCallbackBridge<MessagingClusterMessagingControlImportanceAttributeCallback>
{
public:
    CHIPMessagingClusterMessagingControlImportanceAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<MessagingClusterMessagingControlImportanceAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::Messaging::MessagingControlImportance value);
};

class CHIPMessagingClusterMessagingControlImportanceAttributeCallbackSubscriptionBridge
    : public CHIPMessagingClusterMessagingControlImportanceAttributeCallbackBridge
{
public:
    CHIPMessagingClusterMessagingControlImportanceAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPMessagingClusterMessagingControlImportanceAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableMessagingClusterMessagingControlImportanceAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableMessagingClusterMessagingControlImportanceAttributeCallback>
{
public:
    CHIPNullableMessagingClusterMessagingControlImportanceAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                  CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<NullableMessagingClusterMessagingControlImportanceAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                                keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::Messaging::MessagingControlImportance> & value);
};

class CHIPNullableMessagingClusterMessagingControlImportanceAttributeCallbackSubscriptionBridge
    : public CHIPNullableMessagingClusterMessagingControlImportanceAttributeCallbackBridge
{
public:
    CHIPNullableMessagingClusterMessagingControlImportanceAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableMessagingClusterMessagingControlImportanceAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPMessagingClusterMessagingControlTransmissionAttributeCallbackBridge
    : public CHIPCallbackBridge<MessagingClusterMessagingControlTransmissionAttributeCallback>
{
public:
    CHIPMessagingClusterMessagingControlTransmissionAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<MessagingClusterMessagingControlTransmissionAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                          keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::Messaging::MessagingControlTransmission value);
};

class CHIPMessagingClusterMessagingControlTransmissionAttributeCallbackSubscriptionBridge
    : public CHIPMessagingClusterMessagingControlTransmissionAttributeCallbackBridge
{
public:
    CHIPMessagingClusterMessagingControlTransmissionAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPMessagingClusterMessagingControlTransmissionAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableMessagingClusterMessagingControlTransmissionAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableMessagingClusterMessagingControlTransmissionAttributeCallback>
{
public:
    CHIPNullableMessagingClusterMessagingControlTransmissionAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                    CHIPActionBlock action,
                                                                                    bool keepAlive = false) :
        CHIPCallbackBridge<NullableMessagingClusterMessagingControlTransmissionAttributeCallback>(queue, handler, action,
                                                                                                  OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::Messaging::MessagingControlTransmission> & value);
};

class CHIPNullableMessagingClusterMessagingControlTransmissionAttributeCallbackSubscriptionBridge
    : public CHIPNullableMessagingClusterMessagingControlTransmissionAttributeCallbackBridge
{
public:
    CHIPNullableMessagingClusterMessagingControlTransmissionAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableMessagingClusterMessagingControlTransmissionAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPApplianceEventsAndAlertClusterEventIdentificationAttributeCallbackBridge
    : public CHIPCallbackBridge<ApplianceEventsAndAlertClusterEventIdentificationAttributeCallback>
{
public:
    CHIPApplianceEventsAndAlertClusterEventIdentificationAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                 CHIPActionBlock action, bool keepAlive = false) :
        CHIPCallbackBridge<ApplianceEventsAndAlertClusterEventIdentificationAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                               keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ApplianceEventsAndAlert::EventIdentification value);
};

class CHIPApplianceEventsAndAlertClusterEventIdentificationAttributeCallbackSubscriptionBridge
    : public CHIPApplianceEventsAndAlertClusterEventIdentificationAttributeCallbackBridge
{
public:
    CHIPApplianceEventsAndAlertClusterEventIdentificationAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPApplianceEventsAndAlertClusterEventIdentificationAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class CHIPNullableApplianceEventsAndAlertClusterEventIdentificationAttributeCallbackBridge
    : public CHIPCallbackBridge<NullableApplianceEventsAndAlertClusterEventIdentificationAttributeCallback>
{
public:
    CHIPNullableApplianceEventsAndAlertClusterEventIdentificationAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                         ResponseHandler handler,
                                                                                         CHIPActionBlock action,
                                                                                         bool keepAlive = false) :
        CHIPCallbackBridge<NullableApplianceEventsAndAlertClusterEventIdentificationAttributeCallback>(queue, handler, action,
                                                                                                       OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::ApplianceEventsAndAlert::EventIdentification> & value);
};

class CHIPNullableApplianceEventsAndAlertClusterEventIdentificationAttributeCallbackSubscriptionBridge
    : public CHIPNullableApplianceEventsAndAlertClusterEventIdentificationAttributeCallbackBridge
{
public:
    CHIPNullableApplianceEventsAndAlertClusterEventIdentificationAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action,
        SubscriptionEstablishedHandler establishedHandler) :
        CHIPNullableApplianceEventsAndAlertClusterEventIdentificationAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};
